如果你不相信第三方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