javascript/js 原生动态插入外部js文件及动态插入js代码片段,兼容ie

动态创建js脚本有两种方式:
1.插入外部js文件
2.插入js代码片段
动态插入js外部文件的方法:

function loadScript(url){
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = url;
            document.body.appendChild(script);
        }
loadScript('test.js');

动态加载js代码片段

function loadJsCode(code){
    var script = document.createElement('script');
    script.type = 'text/javascript';
    //for Chrome Firefox Opera Safari
    script.appendChild(document.createTextNode(code));
    //for IE
    //script.text = code;
    document.body.appendChild(script);
}
loadJsCode('alert(2)');

IE中<script>标签被视为一个特殊标签,不能访问其子元素,所以要使用script.text方法,同时为了兼容Safari早起版本,兼容代码如下:

function loadJsCode(code){
var script = document.createElement('script');
    script.type = 'text/javascript';
    try{
        //for Chrome Firefox Opera Safari
        script.appendChild(document.createTextNode(code));
    }catch(ex){
        //for IE
        script.text = code;
    }
    document.body.appendChild(script);
}
loadJsCode('alert(3)');

以这种方式加载的js片段会在全局环境中执行,实际上这种方式与将字符串传给eval()执行时一样的。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值