我在一个页面上有一个iframe,该iframe和父页面位于不同的域,父页面上的javascript代码能否访问此iframe内部的元素?
我在一个页面上有一个iframe,该iframe和父页面位于不同的域,父页面上的javascript代码能否访问此iframe内部的元素?
如果页面来自不同的域名,浏览器的安全沙盒应该会阻止此类访问。当两个页面来自同一个域名的不同子域时,这可能有效,但这在浏览器之间(甚至是同一浏览器的不同版本)可能会有所不同。
访问子iframe可能有效,但反过来肯定是不行的。
window.frames[0].document.getElementById('ElementId').style.backgroundColor="#000";
使用jQuery.postMessage插件http://benalman.com/code/projects/jquery-postmessage/docs/files/jquery-ba-postmessage-js.html
已测试浏览器:Internet Explorer 6-8,Firefox 3,Safari 3-4,Chrome,Opera 9。
你可以使用CORS来实现这一点,具体是将“document.domain”值在父级和子级中进行匹配。但是,请理解这样做可能带来的安全隐患,并且你需要访问父级和子级文档的源代码。
如果你拥有多个子域名,这一点尤为重要。 我经常使用这种技术,所以我知道它是可行的,即使在SSL下也是如此。
可以使用Chrome浏览器的--disable-web-security参数来实现... ;)
是的,通过document.frames
数组,您可以访问iframe。