onblur javascript alert で OKボタン無限ループ しちゃう | クズリーマンのカス備忘録

onblur javascript alert で OKボタン無限ループ しちゃう

javascriptのロゴ javascript
スポンサーリンク

事象

たとえばtextareaから、フォーカスが外れた(blurした)ときに、ポップアップを表示させたいとして、

See the Pen Untitled by Hidenobu Miyata (@gari8641) on CodePen.

こういう感じのコードを書いて、

Google Chrome 上で動かすと、

alert() で表示させたポップアップメニューに対して[OK]ボタンを押下しても、即座にポップアップメニューが再度表示されてしまう。何度[OK]ボタンを押下しても、ポップアップメニューが消えない。

 

原因

Chrome特有?

IEやFireFoxでは起きないっぽい。

onblurからのalertで再focusしたらバグる問題
どもです。 まこと久々のjs関係の更新です。 テキストボックスをonblurで入力チェック、 望んだものでなけ…

firefoxならフォーカスが移動してくれない程度で済むのですが、
chromeだと閉じても閉じても延々とalertが発動し続けるという悪夢が。

https://igreks.jp/dev/chrome%E4%BD%BF%E7%94%A8%E6%99%82%E3%81%ABfocus%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E5%86%85%E3%81%A7alert%E3%81%99%E3%82%8B%E3%81%A8%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E3%81%8C%E5%BB%B6/

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

 

対応

See the Pen Untitled by Hidenobu Miyata (@gari8641) on CodePen.

 

こんな感じで、textareaなど.focus(); をいれてやる。

 

 

 

 

 

 

コメント

タイトルとURLをコピーしました