JavaScript中的window.event是什么?
我就是不明白JavaScript中的window.event是什么?,javascript,events,Javascript,Events,我就是不明白window.event()在JavaScript中做了什么。它的使用没有任何定义。对于document.event(),情况也是如此。我也不明白这两者之间的区别。他们接受任何论点吗 HTML4增加了让事件在浏览器中触发动作的功能, 就像用户单击元素时启动JavaScript一样 您可以查看可能有用的事件列表 我不知道现在是否使用window.event一天。这似乎是一个非常通用的。相反,您可以使用更具体的窗口事件,如onerror,onload,onresize,onstorage
window.event()
在JavaScript中做了什么。它的使用没有任何定义。对于document.event()
,情况也是如此。我也不明白这两者之间的区别。他们接受任何论点吗
HTML4增加了让事件在浏览器中触发动作的功能,
就像用户单击元素时启动JavaScript一样
您可以查看可能有用的事件列表
我不知道现在是否使用window.event一天。这似乎是一个非常通用的。相反,您可以使用更具体的窗口事件,如onerror
,onload
,onresize
,onstorage
等
在使用它们之前,请确保检查浏览器兼容性
谢谢。事件是发生某件事时调用的事件,因此,例如单击和按键就是事件 然而,
window.event()
的原因是为了跨浏览器兼容性。下面是一些javascript:
object.onclick = function(e) {
// e holds all of the properties of the event
// You can access the event properties like so e.target
}
然而,Internet Explorer不像其他浏览器那样处理JavaScript。因此,对于InternetExplorer来说,要处理与上面相同的代码,我们需要在
object.onclick = function() {
alert(window.event.srcElement); // Same as e.target
}
或者,您可以将它们组合在一起,如下所示:
object.onclick = function(e) {
e = e || window.event; // Use e if it exists or e will be equal to window.event
var target = e.target || e.srcElement; // We then use the e.target property but if that doesn't exist we use e.srcElement
alert(target);
}
您可以使用以下方法处理事件:
htmlElementObj.onclick = function(e) {
//e->event object
};
但是,Internet Explorer不会将事件对象传递给处理程序。相反,您可以使用window.event对象,该对象在触发事件后立即更新
htmlElementObj.onclick = function(e) {
e = e || window.event;
}
“非正式”window.event不是“window”的“方法”,因此不使用括号和/或参数调用。相反,它是用于定位当前活动事件对象的窗口的Microsoft IE only非正式全局浏览器“属性”(一次只能激活一个事件,因为浏览器是单线程的)。有关事件对象可能提供的功能的详细信息,请参阅
Window.event仅在IE9之前需要,因为IE9+和其他浏览器将事件对象作为第一个参数传递给已注册的事件处理程序。标准浏览器处理程序“function onclick(e)”将使用传入的本地参数“e”(或处理程序作者将其命名的任何名称)访问有关当前事件的信息,而在IE9之前,该处理程序的参数“e”将未定义,要求处理程序访问window.event
实际上,这意味着在处理事件时,“旧IE”容错代码检查传入的“事件”,如果找不到,则查找window.event:function handler(e){var e=e?e:window.event;}
据我所知(并能找到),window.event被非正式地接受为IE的一部分,但document.event不被接受,因此只能在低于非正式IE公差的情况下工作(如果IE版本有效,则更可能因IE版本而异)。两者都不存在,除了一些旧的IE版本。建议不要使用
window.event
“然而window.event()的原因是为了跨浏览器兼容”嗯,不。IE只是做得与其他浏览器不同,这就是为什么我们有它。还请注意,OP讨论的是window.event()
,而不是window.event
。也不要忘记内联HTML事件处理程序:从那里访问事件的唯一方法是通过window.event
。例如,