JavaScript: asynchronous sharing buttons
by Nguyễn Đình Quân
HTML
<a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-url="http://www.narga.net">Tweet</a>
<div class="g-plusone" data-size="medium" data-count="true" data-href="http://www.narga.net/"></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-href="http://www.narga.net/"></div>
JavaScript
/*
* Async Sharing Buttons (G+, Facebook, Twitter)
* http://www.narga.net/load-social-button-javascript-asynchronously/
* Simple JavaScript function that loads the third-party scripts asynchronously and after the page loads to improve site performance.
*/
(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('http://apis.google.com/js/plusone.js');
// Facebook SDK
add('http://connect.facebook.net/en_US/sdk.jsxfbml=1&version=v2.3', 'facebook-jssdk');
// Twitter SDK
add('http://platform.twitter.com/widgets.js');
fjs.parentNode.insertBefore(frag, fjs);
}(document, 'script'));