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 相关文章推荐
33种Javascript 表格排序控件收集
Dec 03 Javascript
js function定义函数使用心得
Apr 15 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
Apr 14 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
js实现延迟加载的方法
Jun 24 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
JS动态计算移动端rem的解决方案
Oct 14 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
Dec 11 Javascript
浅析JS抽象工厂模式
Dec 14 Javascript
js实现数字跳动到指定数字
Aug 25 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模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
google 搜索框添加关键字实现代码
2010/04/24 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
Python 连连看连接算法
2008/11/22 Python
Python显示进度条的方法
2014/09/20 Python
python使用opencv进行人脸识别
2017/04/07 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
wxpython布局的实现方法
2019/11/01 Python
python 利用zmail库发送邮件
2020/09/11 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
母亲节演讲稿范文
2014/01/02 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
领导失职检讨书
2014/02/24 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
检讨书格式范文
2015/05/07 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书