首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

动态加载javascript资料

2012-10-28 
动态加载javascript文件动态加载javascript?很俗的一个题目,如果你已经知道如何动态加载外部javascript,那

动态加载javascript文件

动态加载javascript?很俗的一个题目,如果你已经知道如何动态加载外部javascript,那么你可以跳过这篇文章继续阅读其它的。如果你还不知道怎样动态加载外部javascript文件的话,请耐心的继续阅读。
什么时候会用到动态加载javascript文件的技术呢?其实很多的时候都有可以用到,比如从服务器端生成javascript脚本,但是用到动态加载javascript文件主要是因为前端和后端数据的交互(至少哥会在这个时候用到)。
前几天在修改移动版支付宝时,就使用了动态加载javascript文件。
记住,这里说的动态加载js文件是指利用js动态加载js文件,并非是服务器生成。

如何创建动态加载外部javascript的脚本呢?非常简单

 var script = document.createElement('script');//创建script标签   script.src = 'http://mgw.alipay.com/choosePhone.htm?' + (new Date()).getTime().toString().substring(0,8);   script.type = "text/javascript";   script.characterSet = 'utf-8';   script.onload = script.onreadystatechange = function(){//兼容IE和DOM标签的script onload事件       if (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') {          alert(malipayBrands.length);       }   } 

?

document.getElementsByTagName('head')[0].appendChild(script);

?

?

在国外已经有一个封装好的loadScript.js,代码如下:

function loadScript(url, callback){ var f = arguments.callee; if (!("queue" in f)) f.queue = {}; var queue = f.queue; if (url in queue) { // script is already in the document if (callback) { if (queue[url]) // still loading queue[url].push(callback); else // loaded callback(); } return; } queue[url] = callback ? [callback] : []; var script = document.createElement("script"); script.type = "text/javascript"; script.onload = script.onreadystatechange = function(){ if (script.readyState && script.readyState != "loaded" && script.readyState != "complete") return; script.onreadystatechange = script.onload = null; while (queue[url].length) queue[url].shift()(); queue[url] = null; }; script.src = url; document.getElementsByTagName("head")[0].appendChild(script); } ?

热点排行