hogashi.*

日記から何から

Chrome53でnew CustomEvent('click')がマウスクリックじゃなくなった?

 GoogleChromeをバージョン 53.0.2785.89 mにアップデートしたら、new CustomEvent('click')がマウスクリックの挙動をしなくなった*1

結論?

 先に考えたことを書くと、CustomEvent - Web APIs | MDN によればCustomEvent

The CustomEvent interface represents events initialized by an application for any purpose.

イベントを勝手につくるためのものだから、CustomEventでつけたイベント名がclickだったとしても、MouseEventclickとは区別されるようになった、のだろうと思う(詳しい方よろしければお教えください)。

環境

OS: Windows7
Chrome: バージョン 53.0.2785.89 m

状況

 対象のエレメントelemに対して、クリックイベントを起こしたい。

elem.dispatchEvent(new CustomEvent('click'));

 これがChrome52ではクリックイベントとして動いていたのだけれど、Chrome53から動かなくなった。戻り値はtrueなのだけど、見た目には何も起こっていない状態。

 ちなみに、new MouseEvent('click')を使うと、ちゃんとクリックされた挙動が起こる*2elem.click()でも起こる。

MDN

 CustomEvent() - Web APIs | MDNMouseEvent() - Web APIs | MDN も健在だが、後者のブラウザ対応状況では Safari の Basic support に「?」がついている。

結び

 これからはclickにはMouseEventを使います。

*1:自分が書いたコードに指摘を頂いた(ありがとうございます)。

*2:*1に同じ