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

 更新时间:2013年11月15日 16:18:04   作者:  
这篇文章主要介绍了javascript中动态加载js文件多种解决办法,有需要的朋友可以参考一下

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

复制代码 代码如下:

/*
    动态加载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的方法。

相关文章

  • 不使用jquery实现js打字效果示例分享

    不使用jquery实现js打字效果示例分享

    js打字效果示例js打字效果示例,data-period设置从打字返回删字的时间,data-rotate可加减中英文词语,不用jquery支持
    2014-01-01
  • 使用JavaScript平移和缩放图像的示例代码

    使用JavaScript平移和缩放图像的示例代码

    平移和缩放是查看图像时常用的功能,我们可以放大图像以查看更多细节,进行图像编辑,Dynamsoft Document Viewer是一个用于此目的的SDK,它为文档图像提供了一组查看器,在本文中,我们将演示如何使用它来平移和缩放图像,需要的朋友可以参考下
    2024-08-08
  • 微信小程序填写用户头像和昵称实现方法浅析

    微信小程序填写用户头像和昵称实现方法浅析

    这篇文章主要介绍了微信小程序填写用户头像和昵称实现方法,我们使用小程序往往能碰到提示允许获取用户头像昵称,这种功能怎么实现呢?本篇文章带你探索
    2023-02-02
  • 原生javascript实现的ajax异步封装功能示例

    原生javascript实现的ajax异步封装功能示例

    这篇文章主要介绍了原生javascript实现的ajax异步封装功能,结合完整实例形式分析了原生javascript实现的ajax异步交互函数与相应的使用方法,需要的朋友可以参考下
    2016-11-11
  • ES6新特性之模块Module用法详解

    ES6新特性之模块Module用法详解

    这篇文章主要介绍了ES6新特性之模块Module用法,简要说明了模块Module的概念、功能并结合实例形式分析了模块Module的使用方法与相关注意事项,需要的朋友可以参考下
    2017-04-04
  • 用js实现的检测浏览器和系统的函数

    用js实现的检测浏览器和系统的函数

    检测各种浏览器、系统的JS代码
    2009-04-04
  • js中生成map对象的方法

    js中生成map对象的方法

    生成map对象的方法或许会有很多,在本文将为大家详细介绍下使用js是如何做到的,感兴趣的朋友不要错过
    2014-01-01
  • javascript实现当前页导航激活的方法

    javascript实现当前页导航激活的方法

    这篇文章主要介绍了javascript实现当前页导航激活的方法,涉及javascript操作css的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • JS严格模式原理与用法实例分析

    JS严格模式原理与用法实例分析

    这篇文章主要介绍了JS严格模式原理与用法,结合实例形式分析了JS严格模式基本概念、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 关于JavaScript的单双引号嵌套问题

    关于JavaScript的单双引号嵌套问题

    单引号和双引号之间可以相互嵌套。接下来通过本文给大家介绍JavaScript的单双引号嵌套问题 ,感兴趣的朋友一起看看吧
    2017-08-08

最新评论