我有一个本地网页(在我的文件系统上)。我希望在显示domain.com的页面上加载iframe。我想更改iframe内容。
我可以访问domain.com并可以让他们为我托管一个javascript文件。所以这应该意味着我不会遇到同源的问题。我的文件需要很长时间才能上传,因为它是由不同的团队完成的。我的想法是在我的js文件中的服务器domain.com上我可以在myserver.com上调用另一个js文件。它是否被包含在domain.com js文件中它应该工作......好吧它没有。
这可能吗?
domain.com js文件如下:
$(document).ready(function(){
$.getScript("http://www.myserver.com/my.js");
});
我服务器上的my.js正在进行
alert($("iframeID").contents().find('body').html());
返回null
如果我在my.js中
alert('test');
我收到了测试通知。
答案 0 :(得分:2)
同源策略适用于页源,而不适用于JavaScript。如果您的网页来自一个地方(file://
网址)而另一个网页来自其他网域,那么您的脚本托管位置无关紧要。
答案 1 :(得分:1)
我不确定我的情景100%。如果我错了,请纠正我:
$.getScript()
iframeID
中的元素alert($("iframeID")...
引用您网页上的iframe,其中显示了来自domain.com的网页如果这是正确的,问题是在domain.com上的iframe内执行的javascript对iframe一无所知。它甚至不知道它在iframe中。您可以像处理任何其他HTML文档一样操作页面,因为脚本在domain.com中的页面内执行 - 脚本最初来自哪里并不重要。
因此,您可以非常简单地在domain.com中打印页面的body
:
alert($(body).html())