如何用 js 触发谷歌翻译网站的"交换语言"按钮的 onmousedown 啊?
南门老徐
摄影/插画
 1
2020-08-24 15:58:38

我只会用x.click()触发一个 onclick,但是 jQuery 的jQuery('.swap').mousedown()貌似不管用,不知道为什么。(谷歌翻译没有用 jQuery,是我在控制台里导入的 jQuery )。

这个按钮的确是使用 mousedown 触发的,因为我从控制台里把它的 mousedown 的最后一个 Event Listener 删掉之后手动点击就没有反应了。

尝试使用过原生 js 的document.createEvent,然后再dispatchEvent,但是也貌似不管用。

百度翻译的交换语言按钮就可以很正常地触发。
就 copy 一下你的代码实现一下吧
```
let down=document.createEvent('MouseEvents'), up=document.createEvent('MouseEvents');
down.initMouseEvent('mousedown',true,false,document.defaultView,0,279,179,207,80,false,false,false,false,0,null);
up.initMouseEvent('mousedown',true,false,document.defaultView,0,279,179,207,80,false,false,false,false,0,null);
node.dispatchEvent(down);
setTimeout(() => node.dispatchEvent(up), 300); 

关键词: