我建议的第一件事是引入一些闭包。您将所有内容都设置在全局范围内,但我建议将它们分开到它们自己的范围内。
看看这里。http://jsfiddle.net/2YGtz/
这里的基本思想是我们将把每个部分分开并让每个部分返回一个“onload”函数
var ieFix = (function () {
var load = function () {
//Do your load operations here...
};
return {
//Return your ieFix onload function so it can be accessed in the global scope
onLoad: load
};
})(); //Note the parens here. This will execute the function right away, which will
//declare and return the onload function right away, so you can access it when
//when you declare your "window.onload" function below.
var passVar = (function () {
var load = function () {
//Do your passVar load operations here
};
return {
//Return your passVar onload function
onLoad: load
};
})();
//Create a combined "window.onload" function now.
window.onload = function () {
ieFix.load();
passVar.load();
};
查看我所做的注释,并注意对变量 x 的各种声明的描述。
第二次编辑
$(document).load(function () {
//Load function here...
})
$(document).load() 方法的好处是,每次你传入一个函数时,它都会将它添加到 onload 函数中,而不是覆盖该函数,如果 onload 事件已经触发,它只会立即调用该函数。因此,与其返回加载函数,您可以只做一个
$(document).load(function () { //load stuff })
就在闭包函数中。