为什么附加a<脚本>到动态创建的<iframe>是否在父页面中运行脚本?

我正在尝试创建一个<iframe>使用JavaScript,然后附加一个<脚本>与此相关的要素<iframe>,我想在<iframe>d文件

不幸的是,我似乎做错了什么-我的JavaScript似乎执行成功,但<脚本>是父页面,而不是<iframe>d文件。当浏览器请求iframe_test.js时,Firebug的“Net”选项卡中也出现了301错误,尽管它随后再次成功请求(不确定为什么?)

这是我正在使用的代码(在http://onespot.wsj.com/static/iframe_test.html):

iframe\u test.html

<!DOCTYPE html PUBLIC“-//W3C//DTD XHTML 1.0 Strict//EN”http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“xml:lang=“en”lang=“en”>
<头>
<meta http equiv=“Content Type”Content=“text/html;charset=utf-8”/>
<标题&gt&书信电报;iframe&燃气轮机;测试&lt/标题>
&lt/头>
<车身>
<div id=“bucket”&gt&lt/部门>
<script type=“text/javascript”src=”http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js“&gt&lt/脚本>
<script type=“text/javascript”>
$(文档).ready(函数(){
$('#bucket')。追加('<iframe id=“test”></iframe>');
setTimeout(函数(){
var iframe_body=$('#test').contents().find('body');
iframe_body.append('<scr'+'ipt type=“text/javascript”src=”http://onespot.wsj.com/static/iframe_test.js“></scr'+'ipt>”);
}, 100);
});
&lt/脚本>
&lt/车身>
&lt/html>

iframe_test.js

$(函数(){
var测试=“<p>这不应该在<iframe>?</p>内部吗?”;
$('body')。追加(测试);
});

一件看起来不寻常的事情是,iframe_test.js中的代码甚至可以工作;我没有在<iframe>本身,仅在父文档中。这对我来说似乎是个线索,但我不明白它的意思

如有任何想法、建议等,将不胜感激

有同样的问题,我花了几个小时才找到解决办法。
您只需要使用iframe的文档创建脚本的对象

var myIframe=document.getElementById(“myIframeId”);
var script=myIframe.contentWindow.document.createElement(“脚本”);
script.type=“text/javascript”;
script.src=src;
myIframe.contentWindow.document.body.appendChild(脚本);

工作起来很有魅力

发表评论