attachevent用法(编程,JavaScript中的onload无法多次调用,求解决办法)

本文目录
编程,JavaScript中的onload无法多次调用,求解决办法
不但onload,所有事件都一样,如果同一个事件你写了多个触发的函数,那么它只会运行一个的。
要想实现多次触发,必须使用addEventListener--“添加事件监听”的方法:
window.addEventListener(’load’,函数1,false);
window.addEventListener(’load’,函数2,false);
要注意,这两个(或者更多)语句可以放在页面的不同地方(甚至可以是不同的js文件内),当网页加载(onload)时,这些函数就会逐一运行了。
但是,上述方法在IE中无效,IE中要用attachEvent,而且用法也不同:
window.attachEvent(’onload’,函数1);
window.attachEvent(’onload’,函数2);
js 绑定方法怎么写
方法一:绑定属性元素
最简单和向后兼容性最好的事件绑定方法是把事件绑定到元素标识的属性。事件属性名称由事件类型外加一个“on”前缀构成。尽管HTML属性并不是大小写敏感的,人们还是定义了一个规则,规定事件类型的每一个“词”的首字母大写,比如onClick 和onMouseOver。这些属性也被称为事件处理器,因为它们指示了元素如何“处理”特定的事件类型。
示例:
《INPUT TYPE="button" NAME="myButton" VALUE="Click Here" onClick="myFunc()"》
《!--把事件绑定到元素属性上有一个优点,即可以支持开发者把参数传递给事件处理器函数。接收事件的元素的引用则由一个特殊的参数值--this
关键字来传递。下面的代码演示一个函数如何借助传入参数,把任意数目的文本框的内容转化为大写: --》
《SCRIPT LANGUAGE="JavaScript"》function convertToUpper(textbox) {
textbox.value = textbox.value.toUpperCase();}
《/SCRIPT》...《FORM ....》
《INPUT TYPE="text" NAME="first_name" onChange="convertToUpper(this)"》
《INPUT TYPE="text" NAME="last_name" onChange="convertToUpper(this)"》...《/FORM》
方法二:绑定IE4+《SCRIPT FOR》标识
IE4+ 中,Microsoft 对 《SCRIPT》 标识实现了自己的扩展,可以将它包含的脚本语句和某个元素的一个事件类型进行绑定。支持这个绑定的标识属性(还没有被 W3C 批准为 HTML 的一部分)是 FOR 和EVENT。
FOR 属性的值必须是您为元素的 ID 属性分配的唯一标识符。然后,您必须把事件的名称(onmouseover,onclick,等等)分配给 EVENT属性。在上面的按键实例的基础上,我们必须对按键标识进行修改,使之包含一个ID 属性:
《INPUT TYPE="button" NAME="myButton" ID="button1" VALUE="Click Here"》
《!--脚本语句并不在函数中,而是在 《SCRIPT》 标识中,如下所示:--》
《SCRIPT FOR="button1" EVENT="onclick"》// script statements here 《/SCRIPT》
方法三:绑定对象属性
对于 NN3+ 和 IE4+ 这两类浏览器,脚本编程人员可以以脚本语句的方式把事件绑定到对象上,而不是绑定到元素标识的属性上。每一个负责事件响应的元素对象都为自己能够识别的事件设置了相应的属性。对象属性名称是元素标识属性的小写形式,比如onmouseover。NN4 还接受 interCap(即首字小写,之后的每一个词的首字大写)版本的属性名,但是考虑到跨浏览器的兼容性,所有字母都是小写的名称会更安全一些。
当您把一个函数的引用赋值给一个事件属性的时候,就发生了绑定。函数的引用是指函数的名称,但是不带函数定义中的括号。因此,如果要为一个名为myButton 的按键的点击事件(click)进行绑定,使之激活一个定义为myFunc() 的函数,则其赋值语句如下所示:
document.forms.myButton.onclick = myFunc;
方法四:使用IE5/Windows的attachEvent()方法
attachEvent() 方法的用法如下所示:
elemObject.attachEvent("eventName", functionReference);
eventName 参数的值是表示事件名称的字符串,比如 onmousedown。 functionReference 参数是一个不带括号的函数引用,和早些时候描述的事件属性方法中一样。因此对于上面例子的按键对象,可以通过如下的脚本语句把函数绑定到按键的 click 事件:
document.getElementById("button1").attachEvent("onclick", myFunc);
由于 attachEvent() 方法必须严格工作在 IE5+/Windows 的环境中,所以您既可以使用 W3C DOM 的元素引用方式(如上文所示),也可以使用 IE4+ 的引用方式:
document.all.button1.attachEvent("onclick", myFunc);
方法五:使用W3C DOM的addEventListener();
addEventListener() 方法的语法如下所示:
nodeReference.addEventListener("eventType", listenerReference, captureFlag);
用 W3C DOM 规范中的行话来说,addEventListener() 方法为指定的结点注册了一个事件,表示该结点希望处理相应的事件。
这个方法的第一个参数是一个声明事件类型的字符串(不带"on"前缀),比如click,mousedown,和keypress。
addEventListener() 方法的第二个参数可以和早些时候描述过的函数引用同样对待。
第三个参数则是一个 Boolean 值,指明该结点是否以DOM中所谓的捕捉模式来侦听事件。事件的捕捉和派发---综合起来称为事件的传播--最后由另一篇文章来描述。对于一个典型的事件侦听器来说,第三个参数应该为false(假)。

更多文章:
diverse culture课件(英语邮件范例:旅游英语怎么表达)
2026年3月2日 00:30
字符串全排列(abcdefgh由这八个字符构成的全排列字符串,要求不能出现以下子串:abc ,de,gh.求能有)
2026年3月9日 23:15
javascript 字符串转数字(如何用JavaScript对字符串进行解析并计算出结果)
2025年5月28日 03:00
如何使用u盘安装linux系统(怎么用u盘安装过linux详细步骤!)
2026年1月10日 17:45
domestic abuse only happens(帮我翻译一下这段英语 谢谢啦 ~!!!!!!!!!!!!!!!!!!!)
2026年4月17日 08:45
settimeout怎么停止(window.setTimeout 停止 取消)
2025年6月10日 15:15
word如何设置图片居中?网页中如何用HTML/CSS实现文字居中于图片
2025年6月28日 16:15
php教程视频谁的好(哪里的php视频教程不错我想自学php)
2026年5月11日 14:15
unity 命名空间(为什么unity无法将脚本添加到空的对象)
2026年1月21日 21:00
decimal在python(python字符的精度不够,用什么填充)
2026年8月13日 02:15
禁止iframe嵌套(https页面iframe嵌套http的页面,弹出警告,怎么解决)
2026年5月5日 09:45












