日期:2014-05-17  浏览次数:20596 次

填充到iframe的js为什么只能操作父窗口的DOM?
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<body>
<div id="div1">父窗口</div>

<iframe id="iframe1" width="500" height="400"></iframe>


<script type="text/javascript">

var html='<div id="div1">子窗口<\/div>';
html+='<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"><\/script>';
html+='<script>alert($(\'#div1\').html());<\/script>';

$('#iframe1').contents().find('body').html(html);
</script>

</body>
</html>

为什么弹出父窗口,js是在子窗口执行的,如果换成srcdoc填充就会弹出子窗口,但只有chrome和ff支持,IE不支持!

------解决方案--------------------
用jQuery进行这种DOM操作的时候,script会被提取出来,在完成操作后被执行,所以,如果不是在本页执行

那么,就得自己手动添加,不能和其它的html代码写在一起