【问题标题】:How to trigger the listen button on the Google-translate page using javascript?如何使用javascript触发谷歌翻译页面上的监听按钮?
【发布时间】:2011-08-21 06:42:04
【问题描述】:

我想为 Google 翻译页面添加快捷方式。
AltcEsc 清除textarea;按 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。)

【问题讨论】:

    标签: javascript keyboard-shortcuts google-translate userscripts


    【解决方案1】:

    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 中没有任何功能,并且这些按钮从未为我播放过,即使在该浏览器中手动单击也是如此。

    【讨论】:

    猜你喜欢
    • 2011-09-12
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多