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

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

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

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

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

阅读 11.6k
6 个回答

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

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

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

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

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

调用方法的代码写在 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>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题