2
$('<script/>', {
    src: '/path/to/javascript.js',
    type: 'text/javascript'
}).appendTo($('#iframe').contents().find('body'));

如果我错了,请纠正我,但我认为应该将 JS 加载到 iframe 中。我也尝试过附加到head.

问题
javascript.js已执行,但console.debug(this)在该脚本中返回顶部框架窗口。我试图验证该脚本实际上是否包含在 iframe 中,但不知道如何。

萤火虫输出

此外,运行$('a')fromjavascript.js返回顶部框架中的所有链接,而不是我想要的 iframe 中的每个链接。

谢谢你的时间!


更新:我整理了一个独立的测试用例您也可以下载. 检查控制台并注意这是顶部框架(可以通过变量_TOP 验证)。

4

2 回答 2

1

这是一个灰色地带。对于使用 jQuery 的特定操作,在您使用的引擎盖下importNodeadoptNode取决于浏览器。但是,IE 也不支持(因为我上次研究它)。

您可能想要获取对文档的引用,然后编写脚本。如果没记错的话:

$('<iframe/>')[0].contentDocument.document.write('script');
于 2011-05-03T16:07:43.460 回答
0

我能够在同一个域 iframe 更新中做一些事情:http:
//jsfiddle.net/maniator/DX6bg/1/

确保这两个 URL 在同一个域中。
(包括是否有wwwin from)

更新

你可以像这样测试它:

$(function(){
   var iframe = $('#iframe').contents();

   $('body', iframe).append($('<div>', {text: 'this is a test'}));
});

现在,如果您this is a test在 iframe 中看到文本,您就知道它正在工作

于 2011-05-03T14:20:21.707 回答