ユーザーが入力するまでスクリプトの実行を「ブロック」するカスタムモーダルメッセージを作成することは可能ですか?
いいえ。ネイティブポップアップほど効果的に実行またはユーザーインタラクションをブロックする方法はありません(カスタムポップアップを使用すると、ユーザーは常に開発者ツールを使用してそれから抜け出すことができるため)。
ただし、pstが質問のコメントで述べているように、非同期ライトボックスは面倒ではなく、ポップアップと同じくらいユーザーの操作をブロックするのに効果的です。したがって、好きなライトボックスを提供するライブラリを見つけて、それを実行することをお勧めします。
たとえば、ネイティブウィンドウのアラート/プロンプト機能を使用せずにこれを実現するにはどうすればよいですか?
そのコードを使用して、ネイティブウィンドウのアラート/プロンプト関数を使用しても、言うことを実行することはできません(このフィドルを参照してください-ポップアップを閉じる前に4秒待ちます)。次のものが必要です。
function timeoutFunction() {
alert('Click OK to Continue'); // timing ACTUALLY stops until user hits ok
setTimeout(timeoutFunction, 4000);
}
setTimeout(timeoutFunction,4000);
これは、ネイティブポップアップなしでは実装できないものです(正確には、ライトボックスについては上記を参照してください)。
ループでさえwhile(true)
、一般的にポップアップと同様にブロックされません-Firefoxには、少なくとも、長すぎるとポップアップする「スクリプトの停止」メッセージがあり、他の主要なブラウザもそうすると確信しています。