浏览 3619 次
锁定老帖子 主题:动态加载js
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-30
动态加载js
以下为代码
var loaduri = { version:'1.0', script:function(libraryName) { document.write('<script type="text/javascript" src="'+libraryName+'"></script>'); }, load:function(){ var scriptTags = document.getElementsByTagName("script"); for(var i=0;i<scriptTags.length;i++) { if(scriptTags[i].src && scriptTags[i].src.match(/loadJS\.js$/)) { var path = scriptTags[i].src.replace(/loadJS\.js$/,""); //path = HtmlCode.htmlDecode(path); path = decodeURI(path); this.script(path + 'amq.js'); this.script(path + 'amq2.js'); this.script(path + 'amq3.js'); //this.script('./amq.js'); //this.script('./amq2.js'); //this.script('./amq3.js'); break; } } } } loaduri.load();//加载 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-05-30
貌似很高深的样子
|
|
返回顶楼 | |
发表时间:2012-05-30
你这么做在网速慢的情况下是行的把,不可控js文件下载完成的时间
如果在js文件没有加载完成的时候,调用了js里面的函数就会报错了 |
|
返回顶楼 | |
发表时间:2012-05-31
不错的代码,我先保留。对于细节还没看。
个人技术博客:http://www.happyalaric.com/欢迎拍砖 |
|
返回顶楼 | |
发表时间:2012-05-31
据说, 依此类推, 是这样, 我还是贴代码吧
var loadScript = function(url, callback){ var script = document.createElement('script'); script.type = 'text/javascript'; if(script.readyState){ script.onreadystatechange = function(){ if(script.readyState == 'loaded' || script.readyState == 'complete'){ script.onreadystatechange = null; callback.call(this); } }; }else{ script.onload = function(){ callback.call(this); }; } }; |
|
返回顶楼 | |
发表时间:2012-06-01
最后修改:2012-06-01
www.usinan.com使用的代码:
/* * o的结构 {js:['a.js'],css:['a.css'],callback:function(){}} */ Common.jsCssLoadRun = function(o) { var count = 0; var scriptTag, linkTag; var scriptFiles = o.js; var cssFiles = o.css; var head = document.getElementsByTagName('head')[0]; for ( var k = 0; k < cssFiles.length; k++) { linkTag = document.createElement('link'); linkTag.type = 'text/css'; linkTag.rel = 'stylesheet'; linkTag.href = cssFiles[k]; head.appendChild(linkTag); } for (k = 0; k < scriptFiles.length; k++) { scriptTag = document.createElement('script'); scriptTag.type = 'text/javascript'; scriptTag.charset = 'utf-8'; scriptTag.src = scriptFiles[k]; head.appendChild(scriptTag); if (typeof o.callback == "function") { if (scriptTag.readyState) { // IE scriptTag.onreadystatechange = function() { if (scriptTag.readyState == "loaded" || scriptTag.readyState == "complete") { count++; if (count == scriptFiles.length) o.callback.call(); } }; } else { // other browsers scriptTag.onload = function() { count++; if (count == scriptFiles.length) o.callback.call(); }; } } } if (scriptFiles.length == 0) { o.callback.call(); } }; |
|
返回顶楼 | |
发表时间:2012-06-08
页面加载完成后,再调用document.write会重写整个页面。
|
|
返回顶楼 | |