龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

javascript动态加载js脚本几种方法

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
本文章总结了几种常用的动态加载js脚本的方法,有需要的朋友可参考一下。 javascript动态加载js脚本 1、直接document.write 代码如下 script language=javascript document.write(script src='test.js'/script)
本文章总结了几种常用的动态加载js脚本的方法,有需要的朋友可参考一下。

javascript动态加载js脚本
1、直接document.write

 代码如下

<script language="javascript">

    document.write("<script src='test.js'></script>");

</script>

2、动态改变已有script的src属性

 代码如下

<script src='' id="s1"></script>

<script language="javascript">

    s1.src="test.js"

</script>

3、动态创建script元素

 代码如下

function require(url, options){
    var head, node, isOpera;
    isOpera         = typeof opera !== 'undefined' && opera.toString() === '[object Opera]';
    options.success = options.success || function(){};
    options.error   = options.error || function(){};
    options.type    = options.type || 'text/javascript';
    options.charset = options.charset || 'utf-8';
    options.async   = options.async || true;
     
    head            = document.getElementsByTagName("head")[0];
    node            = document.createElement(//javascript/i.test(options.type) ? 'script' : 'style');
    node.type       = options.type;
    node.charset    = options.charset;
    node.async      = options.async;
    node.src        = url;
    if (node.attachEvent && 
        !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) && 
        !isOpera){
        node.attachEvent('onreadystatechange', function(){
            if(!node.readyState || node.readyState == "loaded" || node.readyState == "complete"){
                options.success();
            }
        });
    }else{
        node.addEventListener('load', options.success, false);
        node.addEventListener('error', options.error, false);
    }
     
    head.appendChild(node);
}

IE不支持加载失败检测

 代码如下

require('http://code.jquery.com/jquery-1.7.3.min.js', {
    success:function(){
        alert('jquery loaded!');
    },
    error:function(){
        alert('jquery load fail!');
    }
});

方法四

 代码如下

//动态加载脚本文件

function AddScript(scriptID,scriptSRC)
{
    if(document.getElementByIdx(scriptID)!=null)
    return;
    var Heads = document.getElementsByTagName_r("HEAD");
    if(Heads.length==0)
    return;
    var oHead = Heads.item(0);
    var oScript= document.createElement("script");
    oScript.id = scriptID;
    oScript.type = "text/javascript";
    //oScript.text = scriptContent;
    oScript.src = scriptSRC;
    oHead.appendChild(oScript);
}

//动态加载脚本内容

function AddScript(scriptID,scriptContent)
{
    if(document.getElementByIdx(scriptID)!=null)
    return;
    var Heads = document.getElementsByTagName_r("HEAD");
    if(Heads.length==0)
    return;
    var oHead = Heads.item(0);
    var oScript= document.createElement("script");
    oScript.id = scriptID;
    oScript.type = "text/javascript";
    oScript.text = scriptContent;
    oHead.appendChild(oScript);
}


精彩图集

赞助商链接