問題タブ [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.
javascript - window.onbeforeunload が複数回起動することがある
機能の使用が見られないからといって、それが役に立たないというわけではありません。
Stack Exchange ネットワーク、GMail、Grooveshark、Yahoo! メールと Hotmail は onbeforeunload プロンプトを使用して、ユーザーが何かを編集し始めた後にページを離れるのを防止/警告します。ああ、保存可能なユーザー入力データを受け入れるほぼすべてのデスクトップ プログラムは、ユーザーが離れる前にプロンプトを表示するこの UX パターンを利用しています。
これと同様に動作する関数があります:
ユーザーがページから移動しようとすると、ブラウザーはページを離れるか、ページにとどまるかを選択するオプションを提示します。ユーザーが [このページを離れる] オプションを選択し、ページが完全にアンロードされる前にもう一度リンクをクリックすると、ダイアログが再び起動します。
この問題に対する絶対確実な解決策はありますか?
注:以下は解決策ではありません:
ユーザーが「ページにとどまる」オプションを選択すると、将来onbeforeunload
の s が機能しなくなる可能性があるためです。
javascript - iOS デバイスの Mobile Safari で window.onbeforeunload を使用する方法はありますか?
Apple が iOS デバイス (iPhone、iPad、iPod Touch) の window.onbeforeunload イベントを無効にしているようです。残念ながら、このイベントが Mobile Safari で機能しない理由に関するドキュメントは見つかりません。
この機能に代わる信頼できる方法があるかどうかは誰にもわかりませんか? Android のブラウザは問題なくサポートしているようで、Safari デスクトップ アプリケーションも問題なく onbeforeunload イベントをサポートしています。
javascript - onbeforeunload で必要なヘルプ、またはブラウザーの [戻る] ボタンをクリックする
ユーザーがブラウザの戻るボタンをクリックすると、プロンプトが表示されて確認を求められます。ユーザーが [OK] をクリックすると、に移動する必要がありxx.html
ます。ユーザーが「キャンセル」をクリックすると、ナビゲーションが妨げられます。これどうやってするの?
注: 既にこのonbeforeunload
方法を試しましたが、すべてのナビゲーション アクションで機能しています。たとえば、ページ上のリンクをクリックすると、このイベントも発生し、ユーザーにメッセージが表示されます。
javascript - window.onbeforeunload 実行クエリ
ユーザーがページを離れたときに投稿クエリを実行しようとしています。私が取り組んでいるコードは
私がここでやっていることに何か問題がありますか?FF エラー コンソールに表示される結果は、関連のない他の関数/変数が定義されていないことを示しているだけです (それらはアンロードされているため)。何を修正する必要があるかについてのヒントや指針はありますか?
jquery - OnBeforeUnload イベントを無効にする: Javascript をクロス ドメイン Iframe に送信するにはどうすればよいですか?
私は非常に単純なことを成し遂げたいと思っています。Iframe を介して Web サイトを参照しています。
iframe には、「onBeforeUnload」を呼び出す関数があります。親ページから、iframe で onbefore unload を無効にしたい。
同じドメインと同じページでこれを行う方法を見つけました。ただし、クロスドメインでこれを行うにはどうすればよいですか?
どんなに複雑であっても、これを機能させるために必要なことは何でもします。
ありがとうございました!
php - ユーザーがブラウザの戻るボタンを押したかどうかを確認する
javascript onbeforeunloadイベントを使用して、ページを終了するかどうかをユーザーに尋ねようとしていますが、イベントを発生させたくありません (編集:「イベント」は、ポップアップしてユーザーに確認するダイアログ ボックスです)サイトを離れるには [OK] をクリックし、現在のページにとどまるには [キャンセル] をクリックします)。
ユーザーがJavaScriptまたはPHPを使用して戻るボタンを押したかどうかを確認する方法はありますか?
IE でのみ機能する非表示の iframe を使用するソリューションを取得しましたが、可能であれば Firefox、Chrome、および Safari で機能するものが必要です。
編集: ユーザーが戻るボタンを押すと、iframe は送り返されますが、親ページは同じ場所に留まるため、IE ソリューションは機能します。このことから、ユーザーが実際に戻るボタンを押したことがわかるので、history.back()を使用します。この小さなハックは (私の知る限り) 他のブラウザーでは機能しないため、クロスブラウザー ソリューションを探しています。
tl;dr window.onbeforeunloadを使用して、ユーザーにサイトを離れたいかどうかを尋ねるダイアログをポップアップ表示しています。ユーザーが戻るボタンを押したときにこれがポップアップしないようにします。ユーザーがブラウザの戻るボタンを押したことをどのように確認できますか?
ありがとう、リック
javascript - Javascript、onbeforeunload タグの制御
onbeforeunload タグを設定して、保存されていないコンテンツがある場合にのみ、特定のページでのみユーザーが特定のページを離れないようにしようとしています (単一のマスター ページを使用しています)。onbeforeunload タグに ##anything## を返すと、常に JavaScript の確認がトリガーされ、ポップアップ内に ##anything## が配置されることがすぐにわかりました。明らかに、これは現在予期されている動作ですが、if ステートメントで制御できる独自の確認ボックスを使用するという私の考えが失われています。
私はこれを試しましたが、うまくいきませんでした:
ここで、DirtyFlag は、保存されていない変更が存在する場合に true になる隠しフィールドです。関数内に return を入れることでうまくいくことを願っていましたが、そのような運はありませんでした。
私の質問は、 onbeforeunload タグを組み込みの return で使用して、そのフィールドの値を保留してバイパスする方法はありますか? または、(これはあまり理想的ではありませんが)getElementById タグを設定またはリセットしたすべての場所で、onbeforeunload タグを動的に追加または削除できると思います。残念ながら、私もそれを行う方法がわかりません。ああ、jQuery やその他の JavaScript ライブラリの使用は完全に制限されています。
javascript - 現在のページを更新する場合を除き、OnBeforeUnload 警告
OnBeforeUnload イベントが発生したときに、ユーザーがどのページに移動しようとしているかを確認できるかどうかは誰にもわかりません。ユーザーが現在のページを実際に離れたときに通知したいのですが、リロードしているときではありません。
php - ロック付きのユーザーフレンドリーなビデオレビュー
私たちは jquery/php/mysql システムを使用して、ユーザーがログインして、システムによって構築されたビデオをオンラインで表示できるようにします。ユーザーがビデオのレビューを開始すると、ビデオはそのようにマークされます。しかし今では、ユーザーがレビューを完了せずにブラウザを離れたり、ブラウザを閉じたりするという、従来のブラウザベースのアプリケーションの問題に追い込まれています。その後、そのビデオは常にレビューされているが完了せず、キューに再入力されないという、途方に暮れた状態になります。
オプションは次のとおりです。
- 期間の境界外にあるレビュー セッションを見つけてキューにリセットするサービス (既に他のサービスがあります) を構築します。
- ユーザーがログインしたときに、期間の境界外にあるレビュー セッションをリセットします。基本的に、ユーザーがレビューのためにビデオをロックアウトすると、次回ログインしたときにロックが解除されます。
- 私になされた提案は、php/apache セッションの長さを使用し、有効期限が切れたら、保留中のレビュー ジョブをリセットすることでした。これは共有サーバー上の 1 つのプロジェクトであるため、これを実装する場所がわからないため、Apache 構成であってはなりませんが、リセット メカニズムはデータベース資格情報を認識してリセットできるようにする必要があります。 ..
- 誰もが嫌う最悪の解決策は、ユーザーが JavaScript を使用して「本当によろしいですか?!」と尋ねて移動できないようにすることです。
このシステムは数人の雇われたレビュアーによって使用されているため、ここで一般の人々を正確に扱っているわけではありませんが、より迅速なレビューのためにユーザーがログインを共有することを防ぐことはできません。同じログインを使用している他のユーザーによってレビューされています。
javascript - onbeforeunloadダイアログボックスのカスタマイズ
ユーザーが移動したときにフォームへの未保存の変更について警告するダイアログボックスをポップアップするonbeforeunloadイベントが機能しています。
表示されるダイアログボックスをカスタマイズして、もう少しユーザーフレンドリーにする方法を教えてください。今のところ、それはかなり扱いにくいです:
「このページから移動してもよろしいですか?
未保存の変更があります。
[OK]を押して続行するか、[キャンセル]を押して現在のページにとどまります。」
Stack Overflowには、「投稿の作成または編集を開始しました」という非常にわかりやすいボタンがあり、ボタンには、一般的な「キャンセル」や「OK」ではなく、「このページにとどまる」、「このページを離れる」と表示されます。 。どうやってやるの?
ソリューションに必要な場合は、jQueryを使用しています。