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 相关文章推荐
取得一定长度的内容,处理中文
Dec 20 Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
Javascript简单实现可拖动的div
Oct 22 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
Bootstrap3 datetimepicker控件使用实例
Dec 13 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 Javascript
详解vue.js数据传递以及数据分发slot
Jan 20 Javascript
js中的this的指向问题详解
Aug 29 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
node.js中事件触发器events的使用方法实例分析
Nov 23 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读取IMAP邮件
2006/10/09 PHP
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue路由的配置和页面切换详解
2020/09/09 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
如何利用python读取micaps文件详解
2020/10/18 Python
Python 求向量的余弦值操作
2021/03/04 Python
如何开启linux的ssh服务
2013/06/03 面试题
幼儿园大班毕业感言
2014/02/06 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
银行催款通知书
2015/04/17 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
师范生见习总结范文
2015/06/23 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers
Python加密与解密模块hashlib与hmac
2022/06/05 Python