我相信javascript中有一个名为event
的对象,我在一些代码中看到它并不是由我写成的行看起来像这样:
event.x + document.body.scrollLeft;
我无法找到更多信息,此外,Firefox中未定义该对象。它适用于所有其他浏览器。任何人都可以向我提供更多信息吗?具体来说,我如何在Firefox中访问此对象?
答案 0 :(得分:2)
clientX
和clientY
是您正在寻找的官方事件属性处理程序。虽然您可能也想考虑screenX
和screenY
。
event.x
和event.y
,这些是什么?
首先, x
和y
属性在所有事件中不。触发事件是相对的。
以下是一个例子:
document.body.onclick = function(){console.log(window.event.x)};
如果您在浏览器的控制台中粘贴并执行该代码,则每次x
时都会记录光标的click
位置。
虽然看一下这个例子:
document.body.onkeyup = function(){console.log(window.event.x)};
每次从键盘上释放密钥时,控制台都会记录undefined
,因为onkeyup()
事件不包含x
和y
属性的任何值
答案 1 :(得分:0)
event
(或只是e
)是事件处理函数的常见第一个参数名称。
在除IE之外的所有现代浏览器中,注册为事件处理程序的函数将作为其第一个参数传递Event对象,其中包含有关该事件的信息。
在IE中,全局event
对象(window.event
)中提供了类似的信息。
由于这些浏览器差异,您经常会看到事件处理程序样板代码,例如:
var clicked = function (e) {
e = e || window.event; // sets e to window.event if no parameter was passed
};