我在页面上有iframe,iframe和父页面在不同的域中,父页面上的javascript代码可以访问此iframe中的元素吗?
答案 0 :(得分:12)
如果页面来自不同的域,则应该无法访问浏览器安全沙箱应该阻止此类访问。当两个页面来自同一个域的不同 sub 域时,它可能会起作用,但是浏览器(甚至可能是同一浏览器的版本)之间可能会有所不同。
访问子iframe可能会有效,但反过来肯定会不工作。
答案 1 :(得分:3)
最简单的方法是通过窗口上的frame对象:
window.frames[0].document.getElementById('ElementId').style.backgroundColor="#000";
答案 2 :(得分:1)
如果两个域完全分开则不可能
答案 3 :(得分:1)
可以使用--disable-web-security参数...;)
来完成Chrome答案 4 :(得分:1)
使用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。
答案 5 :(得分:1)
您可以使用CORS来实现此目的,特别是更改'document.domain'值以匹配parent&儿童。但是,请注意这一点的安全隐患,并且您需要访问父母和子女的源代码。儿童文件。
如果您拥有多个子域,这一点尤为重要。 我一直使用这种技术,所以我知道它的工作原理,即使使用SSL也是如此。
答案 6 :(得分:-2)
是的,通过document.frames
数组,您可以访问iframe。