cabin 发表于 2024-2-22 17:03:10

js怎么模拟鼠标经过事件

比如antd vue这里的DropDown组件,鼠标经过显示下拉菜单,尝试了各种事件都无法通过js触发

https://3x.antdv.com/components/dropdown-cn

有没有大佬给个思路

王一之 发表于 2024-2-22 17:03:11

老生常谈了,参考:

[油猴脚本开发指南]元素规则校验和检测的触发
https://bbs.tampermonkey.net.cn/thread-1250-1-1.html
(出处: 油猴中文网)

我给你试出来了。。。

document.querySelector(".ant-dropdown-link.ant-dropdown-trigger").dispatchEvent(new MouseEvent('mouseenter'))

但是我是不推荐这样的,直接模拟API或者最终操作比较好(当然,也看情况来定)

cabin 发表于 2024-2-22 17:05:55

看到有的帖子说可以用.dispatchEvent(new Event('mouseover'))来模拟,但是依然无效

cabin 发表于 2024-2-22 18:43:08

王一之 发表于 2024-2-22 18:00
老生常谈了,参考:

[油猴脚本开发指南]元素规则校验和检测的触发


antd-vue的可以,react的antd好像不行, https://ant.design/components/dropdown-cn

我在一路追antd react的源码,追到react-trigger里面,貌似是获取了event的clientX和clientY

cabin 发表于 2024-2-22 19:17:49

我知道了,是react把事件元素又封装了一层,需要用__reactEventHandlers来dispatch事件

李恒道 发表于 2024-2-22 21:21:16

cabin 发表于 2024-2-22 19:17
我知道了,是react把事件元素又封装了一层,需要用__reactEventHandlers来dispatch事件 ...
纯投递也是可以的
知道框架其实更推荐搞个小demo读读源码
基本都能解决
实在不行就走类似智慧树的webpack hook

cvpv 发表于 2024-2-28 11:59:08

有没有那种能模拟用户点击某个坐标的功能?

不知道chrome底层是不是限制了这种操作。

cvpv 发表于 2024-2-28 12:00:07

我们是否能通过再外挂一个第三方windows程序,来配合chrome实现模拟用户点击,直接调用win接口。跳过浏览器沙盒

王一之 发表于 2024-2-28 17:01:37

cvpv 发表于 2024-2-28 11:59
有没有那种能模拟用户点击某个坐标的功能?

不知道chrome底层是不是限制了这种操作。 ...

有的,哥哥可以了解一下CDP
页: [1]
查看完整版本: js怎么模拟鼠标经过事件