也许这是一个错误,但我无法使用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“Invalid Argument”中不起作用。它在同一个文档中工作,但是一旦我引用另一个文档,它就会停止工作。
PS。 Gecko Browser可以处理这个问题。到目前为止只是IE7无法这样做。
答案 0 :(得分:4)
问题仅出现在IE中,并且源于无法在窗口之间创建节点和移动节点(这是一种令人惊讶的好方法)。
考虑以下示例:
$("<iframe/>").append("<div/>");
在IE7中,这将导致错误 - 因为元素应该使用iframe.ownerWindow.document
创建,而不是使用document.createElement
方法或window.ownerDocument.createElement
方法创建。它发生在每个DOM操作方法中。 IE7也不支持importNode
/ adoptNode
方法。
因此,通过JS创建对象并进行操作,耶!
答案 1 :(得分:0)
尝试使用“window.parent”