javascript - 如何使用 javascript 触发谷歌翻译页面上的监听按钮?

标签 javascript keyboard-shortcuts google-translate userscripts

我想为 Google 翻译页面添加快捷方式。
AltcEsc清除文本区域;按 Altj 发音。

这是当前用户脚本:userscripts.org/scripts/review/110928

我不知道如何触发该页面上的监听按钮。

我试过:

  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById("gt-src-listen"); 
  cb.dispatchEvent(evt);

但它不起作用。 (gt-src-listen 是监听按钮的 id。)

最佳答案

Google 使用了一些相当古怪的代码,似乎需要几个事件才能让该按钮播放。

这适用于 Chrome:

function triggerMouseEvent (node, eventType) {
    var clickEvent = document.createEvent('MouseEvents'); 
    clickEvent.initEvent (eventType, true, true); 
    node.dispatchEvent (clickEvent);
}

var srcListenButton  = document.getElementById('gt-src-listen');

triggerMouseEvent (srcListenButton, 'mouseover');
triggerMouseEvent (srcListenButton, 'mousedown');
triggerMouseEvent (srcListenButton, 'mouseup');

(就目前而言;Google 不断打破常规)。

在 Firefox 中没有任何效果,而且那些按钮从未在该浏览器中为我播放过,即使是手动点击也是如此。

关于javascript - 如何使用 javascript 触发谷歌翻译页面上的监听按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136834/

相关文章:

c++ - 如何在 C/C++ 程序中使用键盘的特殊键,例如 Command、Shift、Alt、Tab 或功能键?

google-translate - Google translate API V2 的速率限制是多少?

visual-studio - 如何使用键盘在 Visual Studio (2008) 上打开红色按钮菜单?

java - 如何在一个 AsyncTask 中同时执行多个函数?

css - 你能设计谷歌翻译插件吗?

javascript - 将当前页面的 HTML 放入新窗口

javascript - 从 .live 更改为 .on

javascript - requirejs - 在定义时构建模块,而不是在需要时构建模块

javascript - 我可以将具有 HTML 5 Doctype 的页面加载到具有 Frameset Doctype 的页面上的框架中吗?

javascript - 通过 Javascript 检测 cmd+r 和 cmd+w(以及 ctrl+r 和 ctrl+w)?