4
は、このコードを考えてみましょ原因:クローム:ブラー - - アラートシーケンスを焦点は無限警告ループ
var input = document.getElementById("hello");
input.addEventListener('blur', function() {
alert('hello');
input.select();
input.focus();
});
<input type="text" value="hello" id="hello" />
それは彼/彼女が入るまでの入力に焦点を当てたユーザーを維持することです周りのアイデアそれに有効なテキスト。これはコードの簡略版です。ここ
のJSフィドル:https://jsfiddle.net/wzwft49w/9/
問題:あなたが入力に注力し、それをぼかしている場合は、Chromeではなく、IEの無限の警告ポップアップを取得します。
1.この問題をどのように解決しますか?
2.これはどうして起こるのですか?
注:
- 私はすでにこの質問を確認したが、その修正は、この場合には動作しません:Other question
- はここで古いクロームブラーとフォーカスに関連バグ(ではない、それは持っていることができれば間違いないだろう解決として、それがマークされているものの、これを行うには何):Chrome bug
'input.select();をラップします。 setTimeout(input.focus(); ')は、firefoxも修正します。 firefoxの場合、入力は警告の後にフォーカスされません。 –
'alert '以外のものを使用してメッセージを表示します。理想的には、クリックして却下する必要はありません。 – 4castle
@JaromandaX私はこれを前に試してみました。問題は、ユーザーが入力を集中してから新しいタブを開くと、無限ループが再び起こるということです。 –