将几个java脚本组合到一个.js文件中,现在具有冲突的onload函数
Combined several javascripts into single .js file, now having conflicting onload functions
下午好
我遇到了一个问题,我有三个脚本——一个URL Force,一个传递特定变量的脚本,最后是我在StackOverflow上找到的一个非常棒的IE占位符脚本。
当我把所有的脚本都放在单独的文件中时,IE占位符脚本就可以工作了。
然后a意识到其他两个脚本没有被调用,所以我在body标签中进行了一个onload调用
onload="onLoad(); switchToHTTPS();"
然而,当我这样做时,IE Form修复程序停止了工作。所以现在我想我有一个onload函数的冲突。因此,为了帮助清理,我将所有不同的脚本组合成一个
http://jsfiddle.net/qtmvL/1/
如何使每个脚本在页面加载时自动运行?并且没有任何冲突?
我建议的第一件事是引入一些闭包。您将所有内容都设置在全局范围内,但我建议将它们分离到自己的范围内。
看看这里。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 })
就在闭包函数中。
相关文章:
- 在phonegap中为android调用onload函数的最佳方式
- 将函数从onclick修改为onload
- 如何调用表td标记内的Onload函数
- 不执行包含的页面的Javascript onload函数
- 你能停止window.onload函数吗
- 无法将java脚本函数与Panel'绑定;s OnLoad事件
- 使用多个JavaScript Onload函数
- body onLoad未调用动态生成的javascript函数
- 将函数分配给Reader.onload
- 如何只使用一次window.onload函数
- 在iframe中禁用onload函数的Javascript
- 调用了javascript函数onload并单击按钮
- 触发具有$this的Jquery函数.onload和onclick
- 函数onload()拒绝运行
- 切换到为窗口上的对象分配函数.Onload而不是显式加载.经历困难
- 外部JS函数onload与用户函数onload冲突
- 如何运行一个没有窗口的函数.onload包装
- 同时调用ajax函数onload和onclick
- jquery悬停函数onLoad在firefox中不起作用
- 我如何运行一个函数onload,然后从onclick事件再次调用它