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 相关文章推荐
Javascript匿名函数的一种应用 代码封装
Jun 27 Javascript
dreamweaver 安装Jquery智能提示
Apr 02 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
javascript常见操作汇总
Sep 03 Javascript
JavaScript中的eval()函数使用介绍
Dec 31 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
Angular2自定义分页组件
Apr 19 Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 Javascript
vue-cli3 配置开发与测试环境详解
May 17 Javascript
微信小程序如何实现五星评价功能
Oct 15 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 Javascript
js+css实现全屏侧边栏
Jun 16 Javascript
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二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
关于Js中new操作符的作用详解
2021/02/21 Javascript
整理Python中的赋值运算符
2015/05/13 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
python实现定时发送qq消息
2019/01/18 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Python修改列表值问题解决方案
2020/03/06 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
主管职责范文
2013/11/09 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
公证处委托书
2015/01/28 职场文书
办公室主任岗位职责
2015/01/31 职场文书
开展警示教育活动总结
2015/05/09 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏