判断jquery是否已经加载,如果没有动态加载
智能异步加载方法
// Only do anything if jQuery isn't defined if (typeof jQuery == 'undefined') { if (typeof $ == 'function') { // warning, global var thisPageUsingOtherJSLibrary = true; } function getScript(url, success) { var script = document.createElement('script'); script.src = url; var head = document.getElementsByTagName('head')[0], done = false; // Attach handlers for all browsers script.onload = script.onreadystatechange = function() { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { done = true; // callback function provided as param success(); script.onload = script.onreadystatechange = null; head.removeChild(script); }; }; head.appendChild(script); }; getScript('http://ajax.useso.com/ajax/libs/jquery/1.4.4/jquery.min.js', function() { if (typeof jQuery=='undefined') { // Super failsafe - still somehow failed... } else { // jQuery loaded! Make sure to use .noConflict just in case fancyCode(); if (thisPageUsingOtherJSLibrary) { // Run your jQuery Code } else { // Use .noConflict(), then run your jQuery Code } } }); } else { // jQuery was already loaded // Run your jQuery Code };
document.write
var jQueryScriptOutputted = false; function initJQuery() { //if the jQuery object isn't available if (typeof(jQuery) == 'undefined') { if (! jQueryScriptOutputted) { //only output the script once.. jQueryScriptOutputted = true; //output the script (load it from google api) document.write("<scr" + "ipt type="text/javascript" src="http://ajax.useso.com/ajax/libs/jquery/1.3.2/jquery.min.js"></scr" + "ipt>"); } setTimeout("initJQuery()", 50); } else { $(function() { // do anything that needs to be done on document.ready // don't really need this dom ready thing if used in footer }); } } initJQuery();