問題タブ [onbeforeunload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
254 参照

html - vb.net - JavaScript プロンプト ボックスを自動的に閉じる方法

ページを離れる前に警告する onbeforeunload プロンプト ボックスをアプリケーションで自動的に閉じるにはどうすればよいですか?

例: http://sharecash.org/download.php?file=234324234324324324 (ページを離れるか閉じてみてください)

0 投票する
2 に答える
2303 参照

javascript - JavaScript: HttpRequest が完了するまでドキュメントをアンロードしないでください

誰かが私のページをリロードしたり閉じたりしたときに、進行状況が保存されるようにする必要があります。進行状況を保存するために、POSTviaを実行しXMLHttpRequest()て、データをサーバーに送信します。イベントsaveData()内でこの関数をトリガーしています。window.onbeforeunload

問題は、いくつかの計算を行い、最終的に実際にデータを POST するためにsaveData()a を呼び出すことです。sendData(content)また、処理および送信しているデータが大きい場合 (>100kB)、すべてのデータがサーバーに到達する前にウィンドウが閉じているように見えます。(画像を送信していますが、反対側に半分しか表示されない場合があります)

http リクエストは同期xhr.open("POST", url, false)ですが、それではうまくいかないようです。

だから私の質問は、どうすれば onbeforeunload 関数が UNTIL 終了しないようにすることができxhr.readyState == 4ますか? そのイベントを待機させるにはどうすればよいですか?

ああ、setTimeout()うまくいきません。「時間」になる前にウィンドウが閉じます。

これはうまくいきません:

洞察をありがとう!

PS: 数秒しかかからず、ユーザーが手動で保存する必要がないため、これは「悪い習慣」ではありません。また、彼が作業中に保存すると (ウィンドウを閉じる前など)、アプリの速度が低下するため、それはできません。

[編集] 一時的な手段として、ユーザーがページにとどまることにした場合、このトリックを使用してデータを自動保存することに頼りました。ただし、警告メッセージを使用する必要はありません。:(

0 投票する
1 に答える
2439 参照

javascript - Chrome が onbeforeunload を他のブラウザと異なる方法で処理する理由/方法は?

これを chrome と firefox/IE で試してください:

FF/IE では、更新し、最初のプロンプトでキャンセルを押し、約 6 秒待ってから更新を試みます。「wups」がトリガーされます。ただし、Chrome では、好きなだけ待つことができ、cancelPressed が true に設定されることはありません。

どう思いますか?

0 投票する
3 に答える
538 参照

javascript - onbeforeunload に関する問題

onbeforeunload に問題があり、ユーザーがページを終了できない: ユーザーが終了したい場合、警告やポップアップなしで他のページにリダイレクトしたい

そのページをポップアップしようとしましたが、ブラウザのポップアップがこれを検出してブロックします。

そのようなことは可能ですか?

良い1日を!

0 投票する
3 に答える
24091 参照

php - javascriptでphpスクリプトを実行しますか?

ユーザーがウェブサイトを離れるときに簡単なphpスクリプトを実行し、javascriptからphpに変数を渡そうとしていますが、phpファイルをインクルードしてvarに渡す方法がよくわかりません。ただし、実際にはphpスクリプトを実行していません。何か案は?

(javascriptは外部アクティビティ関数からユーザー名を取得します。アラートとその場所でvarをテストしたことが機能することを知っています。)

私のJavaScript:

私のRemoveUserOnDisconnect.phpファイル:

0 投票する
3 に答える
7900 参照

javascript - アンロード確認前のキャッチはキャンセルされましたか?

ユーザーがページを離れたときに何かをしたいので、このコードを追加します

このプロンプトはユーザーに通知でき、ユーザーはページにとどまるか離れることができます。しかし、私は彼が去るかどうかをもっと知りたいし、彼の決定に従って行動したい. 私はこれを試しました、

でも失敗!!それはいつも消えます!

これを行うのを手伝ってくれる体はありますか?

0 投票する
1 に答える
520 参照

silverlight - Silverlight モーダル ダイアログがブラウザーの onbeforeunload ダイアログに干渉する

私は Silverlight 4.0 プロジェクトに参加しており、さまざまなウィンドウとダイアログがあり、そのうちのいくつかはモーダルです。ホスティング HTML では、 onbeforeunloadイベントをバインドして、ブラウザーが強制的に Silverlight アプリからの変更を失う前に (たとえば、誤って F5 キーを押して)、ユーザーに警告できるようにします。

ただし、Silverlight アプリにモーダルが表示されている場合、ブラウザーの onbeforeunload ダイアログは非表示になり、ユーザーは何もクリックできなくなります。ブラウザプロセスを強制終了する唯一の手段です。これは、これまで IE8 と IE8 の両方で確認されています。

他の誰かがこれに遭遇しましたか?もしそうなら、どのような回避策を使用しましたか?

0 投票する
1 に答える
909 参照

jquery - ウィンドウがアンロードされる前にjquery ajax関数を呼び出す決定的な方法は何ですか?

ウィンドウがアンロードされる前に、jquery ajax() 関数を呼び出す必要があります。私の場合、それは POST であり、返される結果は気にしません。データベースを更新したいだけです。

したがって、答えは関数を unload イベントにバインドすることです。つまり、jquery unload() 関数を使用し、その関数が ajax 呼び出しを行います。さらに、同期パラメーターを呼び出しに追加することになっていることも知っています。つまり、async: false を jquery ajax() 呼び出しに追加します。

しかし、私はこれをすべて試しましたが、IE8 では動作しません! 何度もテストしましたが、IE8 では動作しません。Firefox と Chrome で正常に動作します。

さらに奇妙なことに、IE8 アプリケーション全体を閉じた後、呼び出しが成功したように見えます。キャッシュされていますか?

したがって、他の人は、jquery bind() を使用してアンロードする前に ajax をバインドすることを提案しています。ただし、これがすべてのブラウザーで機能するかどうかについては、さまざまな回答があるようです。

これは「ハック」方法のように見えるため、まだ beforeunload を試していません。ただし、機能する場合は、機能する限り気にしません。

0 投票する
1 に答える
613 参照

javascript - Firefox 4 が beforeunload イベントを 2 回トリガーするのはなぜですか?

「beforeunload」イベントをキャッチしてユーザーに確認ダイアログを表示する Web ページがあります。Firefox 4 および 5 では、ページを閉じるとブラウザも閉じられる場合、このダイアログが 2 回表示されることがわかりました。さらに、ユーザーが 2 回目に [ページに留まる] をクリックすると、ブラウザーは個々のタブを閉じることを許可しなくなります。ただし、ブラウザ全体をシャットダウンすることはできます。

これは Firefox のバグだと思いますが、回避策はありますか?

0 投票する
1 に答える
535 参照

javascript - Jquery イベントでの Javascript onbeforeunload エラー

その前にマークを送信する送信ボタンsubmit_marksheetsがあり、確認を求められます。

もう1つ、変更が行われ、ユーザーが別のページをクリックすると、「変更の保存」の確認が求められます。

私が以下に与えたこれらのコード。問題は、マークシートの送信ボタンをクリックすると警告が表示されることです。しかし、他のページをクリックした後、onbefore unload が呼び出されません。どうしてか分かりません。

誰でもこの問題を解決する方法を教えてもらえますか?