我正在尝试创建一个<;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”/>;
<;标题>&;书信电报;iframe&;燃气轮机;测试</标题>;
</头>;
<;车身>;
<;div id=“bucket”></部门>;
<;script type=“text/javascript”src=”http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js“></脚本>;
<;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);
});
</脚本>;
</车身>;
</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(脚本);
工作起来很有魅力