2015-09-09 92 views
3

我有3個嵌套iframe,我想要訪問第三個iframe中的元素(鏈接)。從其他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>標籤?

回答

0

對我而言已經有段時間了,但我相信這是由於same-origin policy。該內置於瀏覽器的策略不允許您訪問iframe中的內容,除非iframe來自與外部頁面相同的域,協議,端口等。這樣可以防止惡意開發者擁有一個說明Google登錄頁面的iframe,並且可以使用JavaScript訪問密碼字段內容(cross-site scripting的一個示例)。

答案是,除非iframe頁面都在同一個域上,否則這是不可能的。