$('<script/>', {
src: '/path/to/javascript.js',
type: 'text/javascript'
}).appendTo($('#iframe').contents().find('body'));
如果我错了,请纠正我,但我认为应该将JS加载到iframe中。我也试过追加head
。
问题
javascript.js
已执行,但该脚本中的console.debug(this)
将返回顶部框架窗口。我试图验证脚本实际上是否包含在iframe中,但实际上并不知道如何。
此外,从$('a')
运行javascript.js
会返回顶部框架中的所有链接,而不是我想要的iframe中的每个链接。
谢谢你的时间!
更新:我已整理an isolated test case you also can download。检查控制台并注意这是顶部框架(可以通过变量_TOP验证)。
答案 0 :(得分:1)
这是一个灰色地带。对于使用jQuery的此特定操作,您可以使用importNode
或adoptNode
,具体取决于浏览器。但是,IE也不支持(因为我上次研究过它)。
您可能希望获得对文档的引用,并编写脚本。如果记忆对我有用:
$('<iframe/>')[0].contentDocument.document.write('script');
答案 1 :(得分:0)
我能够在同一个域iframe更新中制作内容:
http://jsfiddle.net/maniator/DX6bg/1/
确保这两个网址位于同一个域中
(包括来自或不是www
)
<强>更新强>
你可以这样测试:
$(function(){
var iframe = $('#iframe').contents();
$('body', iframe).append($('<div>', {text: 'this is a test'}));
});
现在,如果您在iframe中看到文本this is a test
,您知道它正在运作