click()が効かなくなったので、dispatchEvent()を使ってみた
duolingoで英語学習するさいに、Tabキーでリスニング音声を再生させるスクリプトをTampermonkeyで作っています。
キーが押されたら、エレメントのclick()をを実行していただけです。
それが機能しなくなりました。
マウスボタンで手動で再生ボタンを押すと再生されるのですが、 click()だと最初の1回は再生されるものの、2回目からはアニメーションが動くだけで音声は流れず。
理屈はわかりませんが、バブリングありのdispatchEvent()を使ってみたら動いたようです。
let clickEvent = new Event('click', {bubbles: true}) playButton.dispatchEvent(clickEvent)
ちなみにduolingoは、標準でもショートカットキーがあり
Ctrl + Space : Replay audio
Ctrl + Shift + Space : Replay audio slower
だそうです。