在JS中动态加载JS?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (102)

有一个动态网页,需要导入外部JS文件

试图寻找一个可行的解决方案,但没有奏效。

尝试使用以下方法将JS文件加载到DOM中但这也没用。

提问于
用户回答回答于

在DOM解决方案中,所做的事情如下:

var script = document.createElement('script');
script.src = something;
//do stuff with the script

首先,因为脚本没有添加到文档树中,所以不会加载,所以这是行不通的。此外,即使这样做了,在加载其他脚本时,javascript的执行仍在继续

因此:

var script = document.createElement('script');
script.onload = function () {
    //do stuff with the script
};
script.src = something;

document.head.appendChild(script); //or something of the likes
用户回答回答于

jQuery可以实现,例如:

jQuery.loadScript = function (url, callback) {
    jQuery.ajax({
        url: url,
        dataType: 'script',
        success: callback,
        async: true
    });
}

然后使用:

if (typeof someObject == 'undefined') $.loadScript('url_to_someScript.js', function(){
    //Stuff to do after someScript has loaded
});

扫码关注云+社区

领取腾讯云代金券