鼠标事件:initMouseEvent() 方法
已弃用:此功能不再推荐。虽然一些浏览器可能仍然支持它,但它可能已经被从相关的 Web 标准中删除,可能正在被删除,或者可能只为了兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参见此页面底部的 兼容性表格 来指导您的决定。请注意,此功能可能在任何时候停止工作。
MouseEvent.initMouseEvent()
方法在鼠标事件创建后(通常使用 Document.createEvent()
方法)初始化它的值。
警告:不要再使用此方法,因为它已弃用。
而是使用特定的事件构造函数,例如 MouseEvent()
。创建和触发事件 页面提供了有关使用这些方法的更多信息。
以这种方式初始化的事件必须使用 Document.createEvent()
方法创建。必须调用此方法来设置事件,然后才能使用 EventTarget.dispatchEvent()
派发它。
语法
initMouseEvent(type, canBubble, cancelable, view,
detail, screenX, screenY, clientX, clientY,
ctrlKey, altKey, shiftKey, metaKey,
button, relatedTarget)
参数
type
-
用于设置事件
type
的字符串。鼠标事件的可能类型包括:click
、mousedown
、mouseup
、mouseover
、mousemove
、mouseout
。 canBubble
-
事件是否可以冒泡。设置
Event.bubbles
的值。 cancelable
-
事件的默认操作是否可以阻止。设置
Event.cancelable
的值。 view
-
事件的 AbstractView。您应该在此处传递
window
对象。设置UIEvent.view
的值。 detail
-
事件的鼠标点击次数。设置
UIEvent.detail
的值。 screenX
-
事件的屏幕 x 坐标。设置
MouseEvent.screenX
的值。 screenY
-
事件的屏幕 y 坐标。设置
MouseEvent.screenY
的值。 clientX
-
事件的客户端 x 坐标。设置
MouseEvent.clientX
的值。 clientY
-
事件的客户端 y 坐标。设置
MouseEvent.clientY
的值。 ctrlKey
-
在事件期间是否按下了 control 键。设置
MouseEvent.ctrlKey
的值。 altKey
-
在事件期间是否按下了 alt 键。设置
MouseEvent.altKey
的值。 shiftKey
-
在事件期间是否按下了 shift 键。设置
MouseEvent.shiftKey
的值。 metaKey
-
在事件期间是否按下了 meta 键。设置
MouseEvent.metaKey
的值。 -
事件的鼠标
button
。 -
事件的 相关 EventTarget。仅用于某些事件类型(例如,
mouseover
和mouseout
)。在其他情况下,传递null
。
返回值
无 (undefined
).
示例
HTML
<div style="background:red; width:180px; padding:10px;">
<div id="out"></div>
<input type="text" />
</div>
JavaScript
document.body.onclick = (event) => {
const elementTag = event.target.tagName.toLowerCase();
document.getElementById("out").textContent = elementTag;
};
const simulateClick = () => {
const event = document.createEvent("MouseEvents");
event.initMouseEvent(
"click",
true,
true,
window,
0,
0,
0,
80,
20,
false,
false,
false,
false,
0,
null,
);
document.body.dispatchEvent(event);
};
simulateClick();
结果
规范
此功能不是任何规范的一部分。它不再有望成为标准。
请改用 MouseEvent()
构造函数。
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参见
-
MouseEvent()
构造函数,创建MouseEvent
的现代标准方法 -
Event.initEvent()
是一种更简单的服务于类似目的的方法。它也已过时,不再应该使用。