怎么判断一个外部的js已经加载完毕

LLLL
  • 587

比如这个外部js叫comm.js,并且不是通过异步动态加载的方式请求到的

comm.js里有一个方法是我要在页面里调用的,但是经常报comm.js里的这个方法未定义(确定不是因为方法编写错误)

如何判断这个外部的静态js文件已经加载完了呢?
等加载完了再去调用这个方法

这个调用现在是放在jquery的$(function(){})里面的,而且页面里存在很多图片,放在window.onload里不太好吧→_→

回复
阅读 9.7k
6 个回答
游于藩篱
  • 576

需要用什么方式调用?利用jQuery很简单:

$.getScript(js.url, function() {
// 你的业务逻辑
});

或者用script标签的onload或onreadstatechange事件处理你的逻辑。

有可能是你的<script>标签是放在body结束前

window.onload = function(){ 
    /*
     * 编写你的代码 
     */
}
interjc
  • 215

调用方法的代码写在 DOMReady 里面试试

var func = function(){
    // 你的代码
};
// onload 时调用函数
window.addEventListener('load', func);
// 或者 DOMContentLoaded
window.addEventListener('DOMContentLoaded', func);
// 或者 jQuery
jQuery(function($){
    func();
});

另外,检查一下 js 文件的加载顺序,你的代码是在 common.js 后面加载的吗?

common.js 中加入回调函数吧

common.js脚本以如下顺序引入,保证common.js在jquery在前面,这样能保证DOMonReady事件发生时common.js已经加载完成

    <script src="common.js"></script>
    <script src="jquery-2.1.3.min.js"></script>
宣传栏