Как вызвать кнопку прослушивания на странице Google-translate с использованием JavaScript? - PullRequest
2 голосов
/ 21 августа 2011

Я хочу добавить ярлыки на страницу 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 - это идентификатор кнопки прослушивания.)

1 Ответ

2 голосов
/ 21 августа 2011

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 ничего не работает, и эти кнопки никогда не воспроизводились для меня, даже вручную, в этом браузере.

...