也许这是一个错误,但我无法使用 jquery (IE7) 从 iframe 访问外部文档。
这是一个非常简单的例子:
顶部文档:
<html>
<head>
</head>
<body>
<iframe src="test2.html" id="UserIFrame" name="UserIFrame">
</body>
</html>
和子 iframe:
<html>
<head>
<script type="text/javascript" src="styles/genevadesign_jquery-1.4.1.js"></script>
<script type="text/javascript">
function doit(){
$('body',top.document).append($('#test'));
$('#test',top.document).fadeIn(300);
}
</script>
</head>
<body>
<div id="test">test</div>
<input type="button" onclick="doit();"/>
</body>
</html>
如您所见,我尝试从内部框架访问顶部文档,如下所示:
$('body', top.document).append($('#test'));
但这在 IE7“无效参数”中不起作用。它在同一个文档中工作,但是一旦我引用另一个文档,它就停止工作。
PS。 Gecko 浏览器可以处理这个问题。目前只有IE7还无法做到这一点。最佳答案
该问题仅在 IE 中出现,并且源于无法创建节点并在窗口之间移动节点(这令人惊讶的是一个好方法)。
考虑以下示例:
$("<iframe/>").append("<div/>");
在 IE7 中,这将导致错误 - 因为该元素应该使用 iframe.ownerWindow.document
创建,而不是使用 document.createElement
方法或 window.ownerDocument.createElement
方法。它发生在每个 DOM 操作方法中。 IE7 也不支持 importNode
/adoptNode
方法。
这样就只剩下通过 JS 创建对象并进行操作了,耶!
关于jquery.append() Iframe IE 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3361905/