2016-08-24 35 views
0

說我給一個HTML元素節點,如訪問IFRAME節點給定元素節點只

<div id = "content"></div> 

而這包含iframe中。它作爲一個節點傳遞給我。我希望能夠獲取元素所在的iframe節點 - 沒有特定的id,我想只能從元素節點訪問它。我試過

elNode.window 

elNode.parent 

但很明顯,讓我不確定。我也通過當前窗口,但嘗試

curWindow.parent 

剛剛通過我在窗口,所以這是無濟於事。我真的只想從元素節點獲取iframe。如果任何人有任何指針,非常感謝。

回答

0

此問題源於同源策略:瀏覽器不允許原始腳本檢查跨源文檔的內容。更多關於sop https://en.wikipedia.org/wiki/Same-origin_policy的詳細信息。一般來說,有以下幾種方式來解決這個問題:

  1. 使用元素從未真正一直受到同源策略:它會下載並執行任何腳本,不論其來源地。
  2. 跨文檔消息傳遞允許來自一個文檔的腳本將文本消息傳遞到另一個文檔中的腳本,而不考慮腳本的起源。在Window對象上調用postMessage()方法會導致消息事件(您可以使用onmessage事件處理函數處理它)異步傳遞到該窗口中的文檔。
  3. 跨源資源共享https://www.w3.org/TR/cors/:該草案標準將HTTP擴展爲一個新的Origin:請求標頭和一個新的Access-Control-Allow-Origin響應標頭。它允許服務器使用頭來明確列出可能請求文件的起源或使用通配符並允許任何站點請求文件。

    1. 要支持此類多域網站,您可以使用Document對象的domain屬性。但是,域值必須至少有一個點;您不能將其設置爲「com」或任何其他頂級域名。例如ecar.car.com,pcar.car.com。您可以將域名設置爲car.com。

希望這可以給你一個什麼樣的幫助

+0

等待,我使用的是易用的iframe - 是仍然是一個問題嗎? – cyqia