2012-01-10 80 views
1

我試圖從一個iframe的信息複製到我的文檔,我寫了這個從IFRAME的信息複製到文件

<iframe class="Number" frameborder="0" allowtransparency="true"> 

    <html> 
     <body id="wow">002-7375347 
       </body> 
    </html> 

</iframe> 


html = $("iframe").find("body").html(); 
document.write(html); 

,它不工作有人能幫助我嗎? 謝謝。

+0

檢查你的標題,你的意思是複製從iframe到文檔?您的目標是從iframe中檢索body標籤的內容並在iframe所在的頁面中使用它們?請更清楚解釋。 – j08691 2012-01-10 00:20:28

+0

感謝您告訴,Hersh – user172071 2012-01-10 00:21:53

+0

他們在相同的域和子域? – m4tt1mus 2012-01-10 00:41:55

回答

1

如果iframe和運行javascript的文檔具有相同的origin(相同的域,端口,協議和其他一些內容),則只能執行此操作。這是一項名爲same origin policy的安全功能,由所有主流瀏覽器實施。你無法真正解決它。

此功能的基本原理是防止以下(大大簡化)情況。

  1. 你去信任的網站blahblah.com
  2. 該網站創建一個無形的iframe和它指向亞馬遜的主頁。
  3. 您使用瀏覽器的憑據登錄,blahblah.com繼續竊取您的所有個人信息。

爲實現大致概括爲從一個原點

請求可以從另一個起源執行代碼,並顯示它,但不能以編程方式操縱,也不檢查其內容的政策。

所以,你的代碼可以

  • 打開一個iframe但無法檢查其內容
  • 您的網頁上包括從谷歌圖像,但無法讀取像素或圖像發回到服務器
  • 從Google.com cdn執行腳本,但無法查看代碼正在執行的任何操作,也無法將代碼本身作爲字符串獲取。

利用這個與正確編程有點不同的事實是Web黑客所做的很大一部分。

+0

謝謝。但它是從同一個域運行的? – user172071 2012-01-10 00:25:59

+0

檢查起源的定義,它不僅僅是域名,它必須是相同的網站。所有這些排隊? – 2012-01-10 00:44:23

相關問題