当前位置: 首页 > 编程笔记 >

javascript触发模拟鼠标点击事件

江新
2023-03-14
本文向大家介绍javascript触发模拟鼠标点击事件,包括了javascript触发模拟鼠标点击事件的使用技巧和注意事项,需要的朋友参考一下

事件触发器就是用来触发某个元素下的某个事件,IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法。

一般我们在元素上绑定事件后,是靠用户在这些元素上的鼠标行为来捕获或者触发事件的,或者自带的浏览器行为事件,比如click,mouseover,load等等,有些时候我们需要自定义事件或者在特定的情况下需要触发这些事件。这个时候我们可以使用IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法。

例如在ie下看看这个例子:

//document上绑定自定义事件ondataavailable
document.attachEvent('ondataavailable', function (event) {
alert(event.eventType);
});
var obj=document.getElementById("obj");
//obj元素上绑定click事件
obj.attachEvent('onclick', function (event) {
alert(event.eventType);
});
//调用document对象的createEventObject方法得到一个event的对象实例。
var event = document.createEventObject();
event.eventType = 'message';
//触发document上绑定的自定义事件ondataavailable
document.fireEvent('ondataavailable', event);
//触发obj元素上绑定click事件
document.getElementById("test").onclick = function () {
obj.fireEvent('onclick', event);
};

fireEvent的官方文档

createEventObject的官方文档

再看看高级浏览器(chrome,firefox等)的例子:

//document上绑定自定义事件ondataavailable
document.addEventListener('ondataavailable', function (event) {
alert(event.eventType);
}, false);
var obj = document.getElementById("obj");
//obj元素上绑定click事件
obj.addEventListener('click', function (event) {
alert(event.eventType);
}, false);
//调用document对象的 createEvent 方法得到一个event的对象实例。
var event = document.createEvent('HTMLEvents');
// initEvent接受3个参数:
// 事件类型,是否冒泡,是否阻止浏览器的默认行为
event.initEvent("ondataavailable", true, true);
event.eventType = 'message';
//触发document上绑定的自定义事件ondataavailable
document.dispatchEvent(event);
var event1 = document.createEvent('HTMLEvents');
event1.initEvent("click", true, true);
event1.eventType = 'message';
//触发obj元素上绑定click事件
document.getElementById("test").onclick = function () {
obj.dispatchEvent(event1);
};

在实际封装中没这么简单,看了一下jQuery.event.trigger的源码

是通过模拟来实现了,给某元素绑定一个事件处理函数,如果有触发事件的实际操作就会执行相应的事件处理函数,所以要达到事件触发器的功能只要获取到相应的事件处理函数然后html" target="_blank">执行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 我目前正在使我的Nintendo Wiimote(实际上是Kinda难过)可以像鼠标一样在计算机上工作。我设法使双节棍的摇杆控件实际上在屏幕上左右移动鼠标!真是令人兴奋。现在我被卡住了。 我想在按A时通过python左/右键单击事物,当我去做搜索时,想到的只是tkinter吗? 所以我的问题是,我该怎么称呼以使python在桌面上左/右单击,并且如果可能的话,也许提供一个代码段? 感谢

  • 问题内容: 我的页面上有一个超链接。我正在尝试自动执行对超链接的多次单击,以进行测试。有什么方法可以使用JavaScript模拟超链接的50次点击? 我正在寻找JavaScript中的onClick事件触发器。 问题答案: 单击HTML元素: 只需执行。大多数主流浏览器都支持此功能。 要多次重复单击: 将ID添加到元素以唯一地选择它: 并通过for循环在JavaScript代码中调用该方法:

  • antd 的 popover,鼠标hover A 元素之后, 会出来B元素。新增到body标签里。 如何使用js触发鼠标hoverA元素的这个事件。

  • 问题内容: 我知道这种方法。但是,我想知道如何模拟事件。 我在堆栈溢出的某个地方找到了此代码,但我不知道如何使用它:( 如何使用JavaScript触发鼠标单击事件? 问题答案: (修改后的版本使之无需prototype.js即可工作) 您可以像这样使用它: 请注意,作为第三个参数,您可以传入’options’。您未指定的选项取自defaultOptions(请参见脚本底部)。因此,例如,如果您想

  • 本文向大家介绍JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例,包括了JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例的使用技巧和注意事项,需要的朋友参考一下 JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例 以上这篇JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支

  • 问题内容: 我正在尝试模拟鼠标在窗口上的单击。我目前已经成功完成了以下操作(我正在使用Python,但是它应该适用于一般的win32): 这很好。但是,如果在我手动移动鼠标时发生单击,则光标位置会被抛出。有什么方法可以将点击直接发送到给定的坐标而无需将鼠标移动到那里?我尝试了以下类似的方法,但运气并不好: 问题答案: 尝试WindowFromPoint()函数: