<html>
<script>
window.attachEvent("onload",function(){alert('attach1')})
window.attachEvent("onload",function(){alert('attach2')})
</script>
<script>function window.onload(){alert('window.onload')}</script>
<script> alert('normal.1') </script>
<script defer> alert('defer1')</script>
<script defer> alert('defer2')</script>
<script> alert('normal.2') </script>
<SCRIPT event=onload for=window language=JavaScript>
alert('eventfor...')
</SCRIPT>
<body onload="javascript:alert('body onload=...')">
</body>
</html>
<script>alert('the last one')</script>
<script>window.onload=function(){alert('window.onload=')}</script>
首先看下attachEvent这个函数
JavaScript执行多个处理过程的方法
以前写 JavaScript 脚本时,事件都是采用object.event = handler;的方式初始化。这种方式对于 Internet Explorer、Mozilla/Firefox 和 Opera 来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。
但是 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是问题是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent
方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
然后看下
<SCRIPT event=onload for=window language=JavaScript>
alert('eventfor...')
</SCRIPT>
这个(以下简称第1种),这个应该和<script>window.onload=function(){alert('window.onload=')}</script>(以下简称第2种)、<body onload>(以下简称第3种)这三个是一致的,只是那个在代码中把onload方法重写了下,所以只弹出eventfor,如果我们把第一种方法干掉,那么就会弹出第三种的结果了也就是说如果有了第1种的情况下,并且也包含第2种或第三种的情况下,第一种会被覆盖掉
还有两个defer的执行顺序,和两个attachEvent之间的顺序
我想这个应该是遇到了这两个东西就压入栈中,应该是这种实现方式,所以后写的会先执行,并且可以处理多个。
分享到:
相关推荐
window.attachEvent('onload', function() { console.log('页面加载完成'); }); } ``` #### 4. 结论 通过以上方法,我们可以有效地解决IE11不支持`attachEvent`的问题。在实际开发中,建议尽可能采用现代浏览器...
可能你也碰到过这种情况,就是在js的代码中用了[removed]后,可能会影响到body中的onload事件。你可以全写在body中,也可以全放到... 代码如下: if (document.all){ window.attachEvent(‘onload’,函数名)//IE中 } els
在IE中,可以使用 `attachEvent` 添加 `window.onload` 事件,而在其他浏览器中则使用 `addEventListener`: ```javascript var script = document.createElement('script'); script.textContent = 'console.log(...
window.attachEvent("onload", google_map_onload); window.attachEvent("onunload", GUnload); } //]]> </script>'; } } ``` #### JavaScript部分 JavaScript部分主要负责加载Google Maps API脚本、检测...
加载事件的处理通常涉及到`window.onload`。下面的`loadEvent`函数确保了即使已经有其他onload事件,也能正确添加新的处理函数: ```javascript var loadEvent = function(fn) { var oldonload = window.onload; ...
1.使用attachEvent给onload添加所需运行的函数 代码如下:if (document.all) { window.attachEvent(‘onload’, FuncName) } else { window.addEventListener(‘load’, FuncName, false); } 2.使用[removed] = ...
ifr.attachEvent("onload", loadfunc); } else { ifr.onload = loadfunc; } ``` 在这个示例中,`loadfunc`函数负责处理加载事件。第一次加载时,它将`iframe`指向`www.b.com/data.html`;当`iframe`内容...
window.attachEvent('onload', onLoadHandler); } ``` 使用`addEventListener`或`attachEvent`可以避免覆盖之前的onload事件处理程序,使得多个脚本模块能够各自添加它们自己的事件处理程序,而不必担心冲突。 ...
通过分离内容和行为,使用`addEventListener`或`attachEvent`为元素绑定事件处理,以及通过`window.onload`事件确保在所有资源加载完毕后再执行重要代码,可以极大地提高代码的可维护性和用户体验。在实际开发中,还...
window.attachEvent("onload", LoadCompleted); // 适用于IE // 兼容其他非IE浏览器的代码 if (!document.attachEvent) { document.attachEvent = function() { document.addEventListener(arguments[0].substr(2...
window.attachEvent('onload', dyniframeSize); } else { window.onload = dyniframeSize; } ``` 这段代码首先定义了一个`iframeids`数组,存储了所有需要调整高度的`iframe`的ID。然后,通过循环遍历这个数组,...
window.attachEvent("onload", function(){ alert('a'); }); window.attachEvent("onload", function(){ alert('b'); }); window.attachEvent("onload", function(){ alert('c'); }); ``` 在上述代码中,我们连续...
window.attachEvent("onload", dyniframesize); } else { window.onload = dyniframesize; } ``` 这段代码首先定义了一个数组`iframeids`,其中包含了所有需要调整高度的`<iframe>`的ID。接着,通过一个循环遍历...
window.attachEvent("onload", init); } else if (window.addEventListener) { // 其他现代浏览器 window.addEventListener("load", init, false); } else { window.onload = init; } ``` #### 四、提高性能...
`window.onload` 通常用于确保页面完全加载后执行某些操作,但只允许一个回调。为了支持多个回调,可以创建一个兼容的函数: ```javascript function iLoad(func) { var oLoad = window.onload; if (typeof ...
(window.attachEvent&&!window.opera)){ h = document.documentElement.clientHeight; w = document.documentElement.clientWidth; }else{ h = window.innerHeight; w = window.innerWidth; } document....
1. `attachEvent`方法:`window.attachEvent('onload', handler1);` 2. `addEventListener`方法:`window.addEventListener('load', handler1, false);` 可以看到,两种方法的使用方式不同。在`attachEvent`方法中...