这些服务中的某些已经(聪明地)以异步方式提供了它们的脚本,这只是将它们组合为更有效,更有条理和可理解的代码。
(function(doc, script) {
var js,
fjs = doc.getElementsByTagName(script)[0],
frag = doc.createDocumentFragment(),
add = function(url, id) {
if (doc.getElementById(id)) {return;}
js = doc.createElement(script);
js.src = url;
id && (js.id = id);
frag.appendChild( js );
};
// Google+ button
add('https://apis.google.com/js/plusone.js');
// Facebook SDK
add('//connect.facebook.net/en_US/all.js#xfbml=1&appId=200103733347528', 'facebook-jssdk');
// Twitter SDK
add('//platform.twitter.com/widgets.js');
fjs.parentNode.insertBefore(frag, fjs);
}(document, 'script'));
我发现它是通过一些站点代码进行的,但我完全忘记了最初由谁来做,但是看起来像是Nicolas Gallagher或Mathias Bynes这样的事情。 如我错了请纠正我。
您需要将HTML放置在适当的位置,脚本才能将其内容放入其中:
<a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal">Tweet</a>
<div class="g-plusone" data-size="medium" data-count="true"></div>
<div id="fb-root"></div>
<div class="fb-like" data-send="false" data-layout="button_count" data-width="1" data-show-faces="false" data-action="recommend"></div>
翻译自: https://css-tricks.com/snippets/javascript/async-sharing-buttons-g-facebook-twitter/