8

私のクライアントは、Web ページに入ったときにアラートを表示したいと考えています。

ただし、アラートは「OK」がクリックされるまでページのそれ以上のロードをブロックし、アラートが表示されている間はバックグラウンドでページをロードする必要があります。

1 つの解決策は、HTML と CSS を使用してカスタム アラートを使用することですが、これはクライアントのニーズに応えていません。

「コア javascript」または jQuery を使用して、アラートが表示されている間にページをロードできるようにするソリューションはありますか? ありがとう。

4

3 に答える 3

8

setTimeout を介して実行する必要があります。

setTimeout(function() { alert('hello world'); }, 1);

これはここに示されています: スクリプトを一時停止しない JavaScript アラートはありますか?

于 2013-06-04T08:59:37.890 に答える
3

編集

Firefox での回避策については、@FunKy の回答を参照してください。(本当に面白いです!)


簡単な答えはノーです。それは不可能です。

理由は、ネイティブalert()ダイアログが UI ブロックであり、javascript がシングル スレッド言語であるためです。

カスタマイズされたダイアログ メッセージを使用する必要があります。

ただし、UI をブロックする直前に ajax リクエストが行われた場合、alert()ダイアログが閉じられると、ajax レスポンスが利用可能になります/利用できるはずです。そのため、アラートを表示する直前に ajax リクエストを行うことができます。

于 2013-06-04T08:59:26.920 に答える
0

ページの読み込みをブロックするアラート ボックスの代わりに、カスタム ダイアログ ボックスを使用できます。たとえば、Jquery UI Dialogは使いやすいです (ただし、まったく同じことを行うプラグインは多数あります)。

于 2013-06-04T09:04:36.287 に答える