I am appending the jQuery library to the dom using:
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
However when I run:
jQuery(document).ready(function(){...
The console reports the error:
Uncaught ReferenceError: jQuery is not defined
How do I load jQuery dynamically as well as use it once it is in the dom?
There’s a working JSFiddle with a small example here, that demonstrates exactly what you are looking for (unless I’ve misunderstood your request): http://jsfiddle.net/9N7Z2/188/
There are a few issues with that method of loading javascript dynamically. When it comes to the very basal frameworks, like jQuery, you actually probably want to load them statically, because otherwise, you would have to write a whole JavaScript loading framework…
You could use some of the existing JavaScript loaders, or write your own by watching for
window.jQueryto get defined.Just remember that if you need to support really old browsers, like IE8,
loadevent handlers do not execute. In that case, you would need to poll for the existance ofwindow.jQueryusing repeatedwindow.setTimeout. There is a working JSFiddle with that method here: http://jsfiddle.net/9N7Z2/3/There are lots of people who have already done what you need to do. Check out some of the existing JavaScript Loader frameworks, like:
https://developers.google.com/loader/(no longer documented)http://yepnopejs.com/(deprecated)