澳门威利斯人_威利斯人娱乐「手机版」

来自 网络资讯 2019-09-23 01:19 的文章
当前位置: 澳门威利斯人 > 网络资讯 > 正文

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

重重言语都有像样php中的include和require功用的函数,而唯独javascript未有。 
很已经想在js中贯彻类似的职能,尝试了数十次都不曾得逞,那天在google上追寻一些关于动态加载css文件的首要词时,发掘一个blog(地址找不到了)上的叁个为网页的head标签增添link成分的函数,于是就改了弹指间,写了这几个函数。 

两个相比全体在动态加方法

用法: 
include_js(src,[reload]); 
src: js文件的门路名 
reload:可选参数,0或1,表示是还是不是再度加载同贰个url的js文件。 

复制代码 代码如下:

说明: 
当富含的js文件中有document.write方法时,在IE下未有反应,但在Mozilla Firefox 下就能够让您原本的网页消失,只呈现document.write出来的源委:mad:  
哈哈哈,对于这些难点,作者当然有妙计: 
纵使重定义 document.write方法,让她不出示任何事物。具体做法: 
在 include_js 从前增进那句 
document.write = function () { return false;}
如此,即便include过来的js文件含有document.write方法大家也固然它损坏网页了!:lol::lol: 

/*
    动态加载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文件

用途: 
本函数能够用来一些广告和计算的js文件异步加载,幸免了因加载js文件而导致的网页突显速度慢的主题材料。 

这是最简易的格局在加载完后再利用间接document.write 如下图。

将此函数修改一下便得以动态加载css文件,不过用处就向来不加载js文件的大。 

复制代码 代码如下:

复制代码 代码如下:

<script language="javascript">

function include_js(path,reload)  
{  
       var scripts = document.getElementsByTagName("script");  
       if (!reload)  
       for (var i=0;i<scripts.length;i )  
              if (scripts[i].src && scripts[i]澳门威斯尼人6613·com,.src.toLowerCase() == path.toLowerCase() ) return;  
       var sobj = document.createElement('script');  
       sobj.type = "text/javascript";  
       sobj.src = path;  
       var headobj = document.getElementsByTagName('head')[0];  
       headobj.appendChild(sobj);  
}

    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>

本文由澳门威利斯人发布于网络资讯,转载请注明出处:javascript中动态加载js文件多种解决办法总结,用

关键词: 澳门威利斯人