李恒道 发表于 2021-2-18 11:35:44

js如何触发事件

```
if (element.fireEvent==null) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
element.dispatchEvent(evt);
}
else
element.fireEvent("onchange");
```

# 方法2

var event = new Event('change');

element.dispatchEvent(event);

这种方法感觉相对通用

来自https://developer.mozilla.org/zh-CN/docs/Web/Guide/Events/Creating_and_triggering_events

szzxc 发表于 2022-8-8 09:49:14

还是看不懂这个事件监听要如何触发,因为JS是webpack打包,阅读不了。。。,页面上看不到绑定那些事件,但是从CHORMEI浏览器上看到有blur, chagne ,click, focus, intut, keydown, keyup 等。。要怎么才能知道触发哪个事件,并且利用tampermonkey 后台进行事件触发。。感觉在change动作上。能通过下断点来跟跟踪触发的条件和调用相关函数吗?

李恒道 发表于 2022-8-8 10:13:24

szzxc 发表于 2022-8-8 09:49
还是看不懂这个事件监听要如何触发,因为JS是webpack打包,阅读不了。。。,页面上看不到绑定那些事件,但 ...
可以参考
[油猴脚本开发指南]元素规则校验和检测的触发
https://bbs.tampermonkey.net.cn/thread-1250-1-1.html
我一般的方式是对事件大概排个序
然后一个一个删除无关紧要的保证最简
(一般都是用的组件库,直接翻下框架源码看下组件库是哪个再翻下源码就七七八八了

szzxc 发表于 2022-8-8 10:45:40

李恒道 发表于 2022-8-8 10:13
可以参考
[油猴脚本开发指南]元素规则校验和检测的触发
https://bbs.tampermonkey.net.cn/thread-1250-1-1 ...

这个看过了,还是不太明白。。
var e = document.queryselector('.xxxx');
例如 e.dispatchEvent(input) 报错。
failed toexecute'dispatchEvent' on 'EventTarget':parameter 1 is not of type 'Event'

李恒道 发表于 2022-8-8 10:55:06

szzxc 发表于 2022-8-8 10:45
这个看过了,还是不太明白。。
var e = document.queryselector('.xxxx');
例如 e.dispatchEvent(input)...

传入的参数类型不对的

steven026 发表于 2022-8-8 16:59:37

szzxc 发表于 2022-8-8 10:45
这个看过了,还是不太明白。。
var e = document.queryselector('.xxxx');
例如 e.dispatchEvent(input)...

input要加引号
"input"
页: [1]
查看完整版本: js如何触发事件