方法一、 function loadScript(url, callback){ callback=callback||function(){}; var script = document.createElement("script") script.type = "text/javascript"; if (script.readyState){ //IE script.onreadystatechange = function(){ if (script.readyState == "loaded" || script.readyState == "complete"){ script.onreadystatechange = null; callback(); } }; } else { //Others: Firefox, Safari, Chrome, and Opera script.onload = function(){ callback(); }; } script.src = url; document.body.appendChild(script); } 使用時,只要簡單地傳遞JavaScript文件的URL和回調(diào)函數(shù)即可: loadScript("http://yui./2.7.0/build/yahoo/yahoo-min.js", function(){ YAHOO.namespace("mystuff"); //more... }); 方法二可以跨域加載JS文件: var MiniSite=new Object(); MiniSite.Browser={ ie:/msie/.test(window.navigator.userAgent.toLowerCase()), moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), opera:/opera/.test(window.navigator.userAgent.toLowerCase()), safari:/safari/.test(window.navigator.userAgent.toLowerCase()) }; MiniSite.JsLoader={ load:function(sUrl,fCallback){ fCallback=fCallback||function(){}; var _script=document.createElement('script'); _script.setAttribute('type','text/javascript'); _script.setAttribute('src',sUrl); document.getElementsByTagName('head')[0].appendChild(_script); if(MiniSite.Browser.ie){ _script.onreadystatechange=function(){ if(this.readyState=='loaded'||this.readyState=='complete'){ fCallback(); } }; }else if(MiniSite.Browser.moz){ _script.onload=function(){ fCallback(); }; }else{ fCallback(); } } }; 使用方法: //使用方法 function showaddr() { alert(IPData); } MiniSite.JsLoader.load("http://fw.qq.com/ipaddress",function(){showaddr();}); |
|