`
txf2004
  • 浏览: 7033199 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

window.attachEvent window.onload

 
阅读更多

<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之间的顺序
我想这个应该是遇到了这两个东西就压入栈中,应该是这种实现方式,所以后写的会先执行,并且可以处理多个。

分享到:
评论

相关推荐

    IE11没有window.attachEvent方法处理方法

    window.attachEvent('onload', function() { console.log('页面加载完成'); }); } ``` #### 4. 结论 通过以上方法,我们可以有效地解决IE11不支持`attachEvent`的问题。在实际开发中,建议尽可能采用现代浏览器...

    window.addEventListener来解决让一个js事件执行多个函数

    可能你也碰到过这种情况,就是在js的代码中用了[removed]后,可能会影响到body中的onload事件。你可以全写在body中,也可以全放到... 代码如下: if (document.all){ window.attachEvent(‘onload’,函数名)//IE中 } els

    attachEvent和addEventListener 使用方法

    在IE中,可以使用 `attachEvent` 添加 `window.onload` 事件,而在其他浏览器中则使用 `addEventListener`: ```javascript var script = document.createElement('script'); script.textContent = 'console.log(...

    google的API接口

    window.attachEvent("onload", google_map_onload); window.attachEvent("onunload", GUnload); } //]]&gt; &lt;/script&gt;'; } } ``` #### JavaScript部分 JavaScript部分主要负责加载Google Maps API脚本、检测...

    javascript 处理事件绑定的一些兼容写法

    加载事件的处理通常涉及到`window.onload`。下面的`loadEvent`函数确保了即使已经有其他onload事件,也能正确添加新的处理函数: ```javascript var loadEvent = function(fn) { var oldonload = window.onload; ...

    页面中body onload 和 [removed] 冲突的问题的解决

    1.使用attachEvent给onload添加所需运行的函数 代码如下:if (document.all) { window.attachEvent(‘onload’, FuncName) } else { window.addEventListener(‘load’, FuncName, false); } 2.使用[removed] = ...

    PHP下ajax跨域的解决方案之window.name实例分析

    ifr.attachEvent("onload", loadfunc); } else { ifr.onload = loadfunc; } ``` 在这个示例中,`loadfunc`函数负责处理加载事件。第一次加载时,它将`iframe`指向`www.b.com/data.html`;当`iframe`内容...

    js onload处理html页面加载之后的事件

    window.attachEvent('onload', onLoadHandler); } ``` 使用`addEventListener`或`attachEvent`可以避免覆盖之前的onload事件处理程序,使得多个脚本模块能够各自添加它们自己的事件处理程序,而不必担心冲突。 ...

    JavaScript判断页面加载完之后再执行预定函数的技巧

    通过分离内容和行为,使用`addEventListener`或`attachEvent`为元素绑定事件处理,以及通过`window.onload`事件确保在所有资源加载完毕后再执行重要代码,可以极大地提高代码的可维护性和用户体验。在实际开发中,还...

    在服务端(Page.Write)调用自定义的JS方法详解

    window.attachEvent("onload", LoadCompleted); // 适用于IE // 兼容其他非IE浏览器的代码 if (!document.attachEvent) { document.attachEvent = function() { document.addEventListener(arguments[0].substr(2...

    iframe自适应高度说明文档

    window.attachEvent('onload', dyniframeSize); } else { window.onload = dyniframeSize; } ``` 这段代码首先定义了一个`iframeids`数组,存储了所有需要调整高度的`iframe`的ID。然后,通过循环遍历这个数组,...

    JavaScript中OnLoad几种使用方法

    window.attachEvent("onload", function(){ alert('a'); }); window.attachEvent("onload", function(){ alert('b'); }); window.attachEvent("onload", function(){ alert('c'); }); ``` 在上述代码中,我们连续...

    IFRAME自适合高度详解

    window.attachEvent("onload", dyniframesize); } else { window.onload = dyniframesize; } ``` 这段代码首先定义了一个数组`iframeids`,其中包含了所有需要调整高度的`&lt;iframe&gt;`的ID。接着,通过一个循环遍历...

    dwr学习总结dwr学习总结

    window.attachEvent("onload", init); } else if (window.addEventListener) { // 其他现代浏览器 window.addEventListener("load", init, false); } else { window.onload = init; } ``` #### 四、提高性能...

    一些常用且实用的原生JavaScript函数.docx

    `window.onload` 通常用于确保页面完全加载后执行某些操作,但只允许一个回调。为了支持多个回调,可以创建一个兼容的函数: ```javascript function iLoad(func) { var oLoad = window.onload; if (typeof ...

    JS控制网页背景随窗口大小自动适应

    (window.attachEvent&&!window.opera)){ h = document.documentElement.clientHeight; w = document.documentElement.clientWidth; }else{ h = window.innerHeight; w = window.innerWidth; } document....

    用JavaScript事件串连执行多个处理过程的方法

    1. `attachEvent`方法:`window.attachEvent('onload', handler1);` 2. `addEventListener`方法:`window.addEventListener('load', handler1, false);` 可以看到,两种方法的使用方式不同。在`attachEvent`方法中...

Global site tag (gtag.js) - Google Analytics