解决多个window.onload冲突问题
2011-06-01 22:54
260 查看
我们在网页中可能要插入多个JS,可是如果在两个JS的代码中都使用了window.onload,可能会出现两个JS不兼容的现象。可能就显示其中一个JS,而另一个就被忽略了,也就是同一个网页中不能出现两个window.onload。这次本人在编写网页的时候就遇到了这个问题,因为如果只用一个JS就显得有点单调,如果重新编写JS代码又感觉太麻烦。这时我们就要用window.attachEvent和window.addEventListener来解决问题了。
当某一事件被触发时需要执行某个函数,在IE下可用attachEvent,在FF下则要用addEventListener。
attachEvent()有两个参数,第一个是事件名称,第二个是需执行的函数;
addEventListener()有三个参数,第一个是事件名称,但与IE事件不同的是,事件不带"on",比如"onsubmit"在这里应为"submit",第二个是需执行的函数,第三个参数为布尔值;
例如:(可以在IE和FF下分别测试):
以下是引用片段:
<input type="button" id="ie" value=" IE " />
<input type="button" id="ff" value=" FF " />
<script type="text/javascript">
var isIE = (document.all && window.ActiveXObject && !window.opera) ? true : false;
if(isIE)
{
document.getElementById('ie').attachEvent("onclick", Fun);
}
else
{
document.getElementById('ff').addEventListener("click", Fun, false);
}
function Fun()
{
if(isIE)
{
alert('I\'m IE');
}
else
{
alert('I\'m Not IE');
}
}
</script>
所以我们可以直接这样编写:
以下是引用片段:
if (document.all){
window.attachEvent('onload',调用函数名)//对于IE
}
else{
window.addEventListener('load',调用函数名,false);//对于FireFox
}
当某一事件被触发时需要执行某个函数,在IE下可用attachEvent,在FF下则要用addEventListener。
attachEvent()有两个参数,第一个是事件名称,第二个是需执行的函数;
addEventListener()有三个参数,第一个是事件名称,但与IE事件不同的是,事件不带"on",比如"onsubmit"在这里应为"submit",第二个是需执行的函数,第三个参数为布尔值;
例如:(可以在IE和FF下分别测试):
以下是引用片段:
<input type="button" id="ie" value=" IE " />
<input type="button" id="ff" value=" FF " />
<script type="text/javascript">
var isIE = (document.all && window.ActiveXObject && !window.opera) ? true : false;
if(isIE)
{
document.getElementById('ie').attachEvent("onclick", Fun);
}
else
{
document.getElementById('ff').addEventListener("click", Fun, false);
}
function Fun()
{
if(isIE)
{
alert('I\'m IE');
}
else
{
alert('I\'m Not IE');
}
}
</script>
所以我们可以直接这样编写:
以下是引用片段:
if (document.all){
window.attachEvent('onload',调用函数名)//对于IE
}
else{
window.addEventListener('load',调用函数名,false);//对于FireFox
}
相关文章推荐
- 一个页面中需要多个window.onload = function(){}冲突问题解决
- 页面中body onload 和 window.onload 冲突的问题的解决
- 关于页面中body onload 和 window.onload 冲突的问题的解决
- 一个页面中多个window.onload = function(){}冲突问题解决方案
- 关于页面中body onload 和 window.onload 冲突的问题的解决
- 关于页面中body onload 和 window.onload 冲突的问题的解决
- 一个页面中多个window.onload = function(){}冲突问题解决思路
- 页面中body onload 和 window.onload 冲突的问题的解决
- 一个页面中多个window.onload = function(){}冲突问题解决思路
- 今天遇到的一个开发问题 window.onload冲突
- 解决一个页面多个window.onload问题
- 解决window.onload 与 body.onload事件冲突的方法
- 关于JS冲突中的window.onload问题。
- window.onload兼容ie和ff以及多次调用导致相冲突的解决方法
- window.onload兼容ie和ff以及多次调用导致相冲突的解决方法
- android adjustresize not working when using windowTranslucentStatus,解决全屏效果与输入框属性冲突的问题
- popwindow,弹出框,popwindow点击事件冲突问题很好的解决
- Web_JavaScript_页面多个window.onload需求问题解决;
- window tomcat 端口冲突问题解决
- javascript中window.onload和body onload冲突的解决方法