如果你不相信第三方JavaScript(我不怪你,這很可怕!),你最好的選擇是使用這些社交網絡提供的iframe
實現。例如,您可以通過將下面的框到您的網站包括Facebook的「Like」按鈕:
<iframe src="//www.facebook.com/plugins/like.php?href=[PAGE_URL_GOES_HERE]&send=false&layout=button_count&width=450&show_faces=true&font&colorscheme=light&action=like&height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>
https://dev.twitter.com/docs/tweet-button#using-an-iframe有一個類似的設置對Twitter的詳細信息。
將代碼封裝在iframe
中,可以爲您提供一些防範幀內容的措施,因爲它無法觸及父級以獲取數據或操作代碼。
您可以通過(巧妙地命名的)屬性對沙盒化iframe
來提高保護等級。例如:
<iframe sandbox="allow-script allow-same-origin" src="..."></iframe>
將頁面加載到一個iframe
,並允許它可以訪問它的起源(但仍然不是父母的原點)運行的腳本。但是,它不能夠瀏覽頂級文檔,加載插件等。在Chrome,Safari,Firefox 18+和IE9中支持沙盒功能(我認爲可能是10.)。
謝謝! Facebook不公佈IFRAME的實現非常好,因爲他們沒有爲它提供一個生成器,所以我讚賞上面的代碼片段。在做了更多的研究之後,只有IE10支持沙盒屬性,儘管IE6-IE9支持安全=限制,這可能對我很有幫助。 – Max