2

我想將快捷方式添加到Google翻譯頁面。
Alt鍵ÇEsc鍵以清除textarea;按Altj發音。如何使用JavaScript觸發谷歌翻譯頁面上的聽按鈕?

這是當前用戶腳本: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。)

回答

2

谷歌使用一些相當棘手的代碼,似乎需要幾個事件才能讓該按鈕播放。

此作品在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'); 

(目前,谷歌不斷打破的東西)。

什麼都不適用於Firefox,而且這些按鈕在我的瀏覽器中從未玩過,即使是手動點擊。

+0

謝謝你的回答。這是最終用戶腳本:http://userscripts.org/scripts/show/110928 – hellojinjie

+0

不客氣;樂意效勞。 –