使用 js 调用 Google 翻译的朗读
手动点击按钮可以朗读(有一个网络请求),执行 `element.click()` 缺不行,我尝试在 js 文件中搜索 "isTrusted" 却没有找到,所以肯定可以通过 js 达到手动点击的效果。
最开始用 devtools 进行一步一步调试,尝试找出不同点从而找到原因,由于太复杂最终无果
后来使用反向思维,先在发出请求的函数中打上断点,然后向前查找,找到栈的第一个函数,但是执行 `click()` 也会执行它
前一步观察发现,调用网络请求的触发事件是 `mouseup`,于是尝试 `dispatchEvent(new MouseEvent(mouseup))`,但还是不能朗读
再次调试,终于发现这个函数的一些端倪,首先,他会执行多次后再进行网络请求,执行它的时候 handle 函数有个属性,在定义函数时就进行有了值
这时候我才想到在调用 `mouseup` 之前就已经做了什么,而且应该在一个事件循环内,想到这里幡然醒悟,`mousedown` + `mouseup` 的效果才类似 `click` 啊,不然点击其他位置再放到这个元素上也会触发吗
尝试一次发送两个事件,结果证明果然如此