从其他iframe字符串中获取iframe元素

时间:2015-09-09 13:15:37

标签: iframe

我有3个嵌套的iframe,我希望能够访问第三个iframe中的元素(链接)。

var iframe = document.getElementById('aswift_2');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

var secondIframe = innerDoc.getElementById('google_ads_frame3');
var secondinnerDoc = secondIframe.contentDocument || secondIframe.contentWindow.document;

var treedIframe = document.getElementById('ad_iframe');
var secondinnerDoc = treedIframe.contentDocument || treedIframe.contentWindow.document;

var Link = secondinnerDoc.getElementById('aw0');

但是在尝试访问时遇到了错误。

Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://localhost:63342" from accessing a cross-origin frame.

我如何访问<a>代码?

1 个答案:

答案 0 :(得分:0)

我已经有一段时间了,但我相信这是same-origin policy所致。除了iframe来自与外部页面相同的域,协议,端口等之外,内置于浏览器中的此策略不允许您访问iframe中的内容。这可以防止恶意开发人员使用iframe表示Google登录页面,并使用JavaScript访问密码字段内容(cross-site scripting的一个示例)。

答案是,除非iframe页面都在同一个域中,否则这是不可能的。