比如这个外部js叫comm.js,并且不是通过异步动态加载的方式请求到的
comm.js里有一个方法是我要在页面里调用的,但是经常报comm.js里的这个方法未定义(确定不是因为方法编写错误)
如何判断这个外部的静态js文件已经加载完了呢?
等加载完了再去调用这个方法
这个调用现在是放在jquery的$(function(){})里面的,而且页面里存在很多图片,放在window.onload里不太好吧→_→
common.js 中加入回调函数吧
window.onload = function(){
/*
* 编写你的代码
*/
}
需要用什么方式调用?利用jQuery很简单:
$.getScript(js.url, function() {
// 你的业务逻辑
});
或者用script标签的onload或onreadstatechange事件处理你的逻辑。
有可能是你的<script>标签是放在body结束前
common.js脚本以如下顺序引入,保证common.js在jquery在前面,这样能保证DOMonReady事件发生时common.js已经加载完成
<script src="common.js"></script>
<script src="jquery-2.1.3.min.js"></script>
调用方法的代码写在 DOMReady 里面试试
var func = function(){
// 你的代码
};
// onload 时调用函数
window.addEventListener('load', func);
// 或者 DOMContentLoaded
window.addEventListener('DOMContentLoaded', func);
// 或者 jQuery
jQuery(function($){
func();
});
另外,检查一下 js 文件的加载顺序,你的代码是在 common.js 后面加载的吗?