Chrome使用時にfocusイベント内でalertするとダイアログが延々と繰り返される場合の対策

簡単な処理やデバッグ時などでは、まだまだ重宝するalert()。

例えばよくあるこんな処理。

ところがGoogle Chromeを使用した場合、「Hello!!」のダイアログを消しても消しても、延々とダイアログが表示し続ける無限ループが発生する場合がある。

アラートを出した後に、自動的に要素に対してフォーカスが行われ、その結果処理の繰り返しになるらしい。

なので、単純な解決策としては、アラートを出した後に、フォーカスを外してやればよい。

 

なお、アラート後、また同じ要素にフォーカスさせ、かつ無限ループさせない方法はこちらを参照。