javascript可以从父页面访问iframe元素吗?

时间:2009-04-08 11:27:23

标签: javascript jquery html

我在页面上有iframe,iframe和父页面在不同的域中,父页面上的javascript代码可以访问此iframe中的元素吗?

7 个答案:

答案 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。