簡體   English   中英

Facebook的Like Button如何通過跨域訪問將HTML添加到父窗口?

[英]How does Facebook's Like Button have cross-domain access to add HTML to the parent window?

免責聲明:我會盡力解釋我的目標,但我對跨域政策的了解非常有限。 我在Stack附近搜索過,但是如果有錯過的答案,請告訴我。

我們在我們的網站上實施了標准的Facebook贊/發送按鈕 LikeSend按鈕位於指向facebook.com的iFrame內。

當您單擊“ Send按鈕時,HTML將作為Facebook iFrame的兄弟(即我們的DOM)附加。

我想知道的是FB如何在不違反跨域策略的情況下將HTML添加到我們網站上的div中。

這是我的小提琴 要查看發生的情況,請在單擊“ Send檢查DOM。

感謝@CBroe指出我的答案:

通過Mozilla

window.postMessage是一種安全啟用跨源通信的方法。 通常,當且僅當執行它們的頁面位於具有相同協議(通常是http),端口號(80是http的默認值)和主機(模數)的位置時,才允許不同頁面上的腳本相互訪問。 document.domain由兩個頁面設置為相同的值)。 window.postMessage提供了一種受控機制,可以在正確使用時以安全的方式規避此限制。

因為您使用javascript添加發送按鈕,而不是使用iframe。 當您的頁面加載/剛加載后,iframe正在生成。

由於這個原因,腳本能夠訪問您的和iframe的內容和DOM元素並對其進行編輯。 正如你所知道並提到的,iframe無論如何都無法達到它的父級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM