3

I'm a little confused how to do this, basically I have a page that has a Facebook Share button inserted via JavaScript:

<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>

The problem is that it's blocking the page load at that part, how can I insert this tag after page load and still have the script execute? I'll like to do it in an unobtrusive way, ideas?

JP Silvashy
  • 44,746
  • 48
  • 146
  • 219

5 Answers5

9

Use the jQuery getScript command inside $(document).ready. This will download the script after the page has loaded. Example:

$(document).ready(function() {
    $.getScript("http://static.ak.fbcdn.net/connect.php/js/FB.Share", function() {
        alert("Script loaded and executed.");
    });
});
ChessWhiz
  • 4,468
  • 3
  • 25
  • 38
3

You could use the jquery.getScripts to load it asynchronously.

Josiah Ruddell
  • 29,337
  • 8
  • 63
  • 67
3

Try something like this:

$(document).ready(function() {
    var script = document.createElement( 'script' );
    script.src = "http://static.ak.fbcdn.net/connect.php/js/FB.Share";
    script.onload=optionallyDoSomethingWithTheScriptYouJustLoaded();//not needed
    var headID = document.getElementsByTagName("head")[0];         
    headID.appendChild(script);
 });
buley
  • 26,353
  • 17
  • 78
  • 100
0

Inject the script tag into the dom as a callback of the document ready event.

Community
  • 1
  • 1
Axel Fontaine
  • 32,887
  • 14
  • 101
  • 134
0

you could do something like:

$(function() {
  $.getScript('http://static.ak.fbcdn.net/connect.php/js/FB.Share', function() {
    //do nothing here
  });
});
Victor
  • 4,683
  • 1
  • 24
  • 31