如何使用javascript在Google翻译页面上触发收听按钮?

时间:2011-08-21 06:42:04

标签: javascript keyboard-shortcuts google-translate userscripts

我想在Google翻译页面添加快捷方式 按 Alt c Esc 清除textarea;按 Alt j 发音。

这是当前的用户脚本: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。)

1 个答案:

答案 0 :(得分:2)

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中没有任何作用,这些按钮从来没有为我播放过,甚至在该浏览器中手动点击。