我有以下内容:“IFRAME加载”如何在iframe中运行动态加载的js文件?
$(document).ready(function() {
var myIframe = document.getElementById('myIframe');
var element = myIframe.contentDocument.createElement('script');
element.setAttribute('src', '/javascripts/library/jquery/jquery.min.js');
myIframe.contentWindow.document.getElementsByTagName('head')[0].appendChild(element);
$('#myIframe', top.document).load(function() {
alert('iframe has loaded');
var element = document.getElementById('myIframe').contentDocument.createElement('script');
element.setAttribute('src', '/javascripts/stuff.js');
myIframe.contentWindow.document.getElementsByTagName('body')[0].appendChild(element);
});
});
我得到的警报
stuff.js包含
$('body').css('backgroundColor', 'yellow');
所以,我希望,当iframe中加载了iframe的背景颜色将变为黄色......但没有任何反应。我甚至尝试在$(document).ready块中环绕stuff.js中的东西,但结果相同。
如果我选择所有并查看iframe的源代码,我发现jquery.min.js和stuff.js位于iframe中。如果将此源输出放入单独的html文件并运行该文件,则文档的背景颜色会按预期更改。
一旦iframe加载,我怎样才能让我的javascript在stuff.js中运行在iframe中?
您是否收到任何脚本错误?您是否在stuff.js中尝试了'alert'?你检查过Firebug吗? – SLaks 2010-03-07 03:46:02
没有脚本错误,也没有提示。我从商店回来后会和Firebug一起窥探。 – 2010-03-07 03:49:01
用Firebug看它时我没有看到任何奇怪的东西。 – 2010-03-07 04:33:41