iframe中包含的JS具有顶部框架窗口的上下文 $(“”{ src:'/path/to/javascript.js', 键入:“text/javascript” }).appendTo($('#iframe').contents().find('body');
如果我错了,请纠正我,但我认为应该将JS加载到iframe中。我还尝试在iframe中包含的JS具有顶部框架窗口的上下文 $(“”{ src:'/path/to/javascript.js', 键入:“text/javascript” }).appendTo($('#iframe').contents().find('body');,javascript,jquery,iframe,dynamic-loading,Javascript,Jquery,Iframe,Dynamic Loading,如果我错了,请纠正我,但我认为应该将JS加载到iframe中。我还尝试在头上附加 问题 执行javascript.js,但该脚本中的console.debug(this)返回顶部框架窗口。我试图验证脚本是否确实包含在iframe中,但不知道如何验证 另外,从javascript.js运行$('a')会返回顶部框架中的所有链接,而不是我想要的iframe中的每个链接 谢谢你的时间 更新:我已经整理好了。检查控制台并注意这是顶部框架(可以通过变量_top进行验证)。我能够在同一个域中进行一些if
头上附加
问题
执行javascript.js
,但该脚本中的console.debug(this)
返回顶部框架窗口。我试图验证脚本是否确实包含在iframe中,但不知道如何验证
另外,从javascript.js
运行$('a')
会返回顶部框架中的所有链接,而不是我想要的iframe中的每个链接
谢谢你的时间
更新:我已经整理好了。检查控制台并注意这是顶部框架(可以通过变量_top进行验证)。我能够在同一个域中进行一些iframe更新:
确保这两个URL位于同一个域中。
(包括from中是否有www
)
更新
您可以这样测试它:
$('<script/>', {
src: '/path/to/javascript.js',
type: 'text/javascript'
}).appendTo($('#iframe').contents().find('body'));
$(函数(){
var iframe=$('#iframe').contents();
$('body',iframe).append($('',{text:'这是一个测试'}));
});
现在,如果您在iframe中看到文本这是一个测试
,您就知道它正在工作这是一个灰色区域。对于使用jQuery执行的此特定操作,根据浏览器的不同,在引擎盖下使用的是importNode
或adoptNode
。然而,IE也不支持(因为我上次研究过它)
您可能希望获取对文档的引用,并编写脚本。如果我没记错的话:
$(function(){
var iframe = $('#iframe').contents();
$('body', iframe).append($('<div>', {text: 'this is a test'}));
});
$('')[0].contentDocument.document.write('script');
是同一域中的iframe,bc如果不是,则您有跨域问题。我不确定您想用它显示什么。你能解释一下这是如何解决上下文问题的吗?@Znarkus,你能给我们看一下页面,这样我们就可以看到错误了,我向你展示了你的代码是有效的,我想你可能有跨域问题,我已经为你准备了一个。检查控制台并注意this
是顶部框架(可以通过变量_top进行验证)。尝试用$(function(){/*此处的代码*/})包装jquery
这几行console.debug on“this”来自iframe.js:DOMWindow
?
$('<iframe/>')[0].contentDocument.document.write('script');