javascript中动态加载js文件多种解决办法总结


Posted in Javascript onNovember 15, 2013

一个比较全部在动态加方法

/*
    动态加载js v1.0 by:dum 
    用法:src="webJsBase.js?load=a,b"
    注:加载本目录下js
*/
var webJsBase = {
    require: function(libraryName) {
        document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
    },
    load: function(defaultLoad) {
        if((typeof Prototype=='undefined')||(typeof Element == 'undefined')||(typeof Element.Methods=='undefined'))
        throw ('prototype lib 加载失败!');
        if(typeof defaultLoad=='undefined')defaultLoad='';
        var js = /webJsBase.js(?.*)?$/;
        $$('head script[src]').findAll(function(s) {
            return s.src.match(js);
        }).each(function(s) {
            var path = s.src.replace(js, '');
            var includes = s.src.match(/?.*load=([a-zA-Z0-9_,]*)/);
            (includes ? includes[1] : defaultLoad).split(',').each(function(include) {
                webJsBase.require(path + include + '.js');
            });
        });
    }
};
webJsBase.load(); //这里参数可以指定默认要加载的js文件

这是最简单的方法在加载完后再利用直接document.write 如下图。

<script language="javascript">
    document.write("<script src='test.js'></script>");
</script>

给script加个id再去动态改变已有script的src 属性

<script src='' id="s1"></script>
<script language="javascript">
    s1.src="test.js"
</script>

这里利用getElementsByTagName('HEAD')动态创建 script元素

<script>
    var oHead = document.getElementsByTagName('HEAD').item(0);
    var oScript= document.createElement("script");
    oScript.type = "text/javascript";
    oScript.src="test.js";
    oHead.appendChild( oScript);
</script>

还可以这样尝试一下,自定一个函数

function include(src) {
HTMLCode = '<script language="javascript" src="' + src + '"></script>';
document.write(HTMLCode);
}

调用方法,这样看上去就你php的include函数了
include(baseDir + "/Prototype.js");
include(baseDir + "/Map.js");
include(baseDir + "/MapEvent.js");
include(baseDir + "/model/MapModel.js");
include(baseDir + "/model/MapType.js");
include(baseDir + "/model/Tile.js");

还有朋友说可以使用ExtJs4 动态加载js这里我就不介绍了,上面的方法足够让你实现动态加载js了.

所以在采用这类方法动态加载Js 的同时,主界面的Js脚本是继续执行的,所以可能出现通过异步加载的Js代码得不到预期的效果的情况。

这时候可以考虑采用Ajax加载Js的方法。

Javascript 相关文章推荐
js window.event对象详尽解析
Feb 17 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
vue使用axios跨域请求数据问题详解
Oct 18 Javascript
在JS循环中使用async/await的方法
Oct 12 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
更强大的vue ssr实现预取数据的方式
Jul 19 Javascript
jQuery-App输入框实现实时搜索
Nov 19 jQuery
jQuery Form 页面表单提交的小例子
Nov 15 #Javascript
js简单实现用户注册信息的校验代码
Nov 15 #Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 #Javascript
jquery实现手风琴效果实例代码
Nov 15 #Javascript
jquery中插件实现自动添加用户的具体代码
Nov 15 #Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 #Javascript
javascript禁制后退键(Backspace)实例代码
Nov 15 #Javascript
You might like
PHP操作数组相关函数
2011/02/03 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP积分兑换接口实例
2015/02/09 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
javascript Demo模态窗口
2009/12/06 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
深入了解Python 变量作用域
2020/07/24 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
Ruby如何创建一个线程
2013/03/10 面试题
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
自我评价如何写好?
2014/01/05 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
助残日活动总结
2014/08/27 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
农业项目投资意向书
2015/05/09 职场文书
决心书格式范文
2015/09/23 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers