Skip to content

Instantly share code, notes, and snippets.

@qwertypants
Created June 11, 2012 20:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qwertypants/2912381 to your computer and use it in GitHub Desktop.
Save qwertypants/2912381 to your computer and use it in GitHub Desktop.
Inspired by http://socialitejs.com/, asynchronously load twitter/facebook scripts based on event
$(function($) {
'use strict';
var srcs = {
twitter: {
id: 'Twitter',
get: function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = "//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
},
hasLoaded: false
},
facebook: {
id: 'Facebook',
get: function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=${fb_app_id}";
fjs.parentNode.insertBefore(js, fjs);
},
hasLoaded: false
}
};
function load(src, args) {
if (!src.hasLoaded) {
src.get.apply(null, args);
src.hasLoaded = true;
//console.log(src.id + ' loaded');
}
}
var share = {
tweet: function() {
load(srcs.twitter, [document, "script", "twitter-wjs"]);
},
fb: function() {
load(srcs.facebook, [document, "script", "facebook-jssdk"]);
}
};
$(window).on('scroll', function() {
share.tweet();
share.fb();
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment