onbeforeunloadイベントのリンク先URLを取得する方法

How can I get the destination URL for the onbeforeunload event?


質問 written by Paolo Forgia @2017-12-07 10:36:03Z

: 48 : 3 : 58

私は何時間も探しましたが、これに対する解決策を見つけることができませんでした。

window.onbeforeunload = warn;

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

function warn (e) 
{ 
   var destination = e.href;
   alert(destination );
}

わかりました、そう物事をクリアするために。 ユーザーがページ自体のリンクをクリックした場合は、すべてのリンクonclickイベントにイベントハンドラを追加できるため、簡単です。 ユーザーがブラウザのURLボックスに入力したアドレスを取得したいのですが。

コメント 1

私はデータ処理サイトに取り組んでおり、ユーザーがページを離れる前に、すべてのデータが要件を満たしていることを確認しています。onbeforeunloadイベントは便利ですが、ブラウザによる処理方法のため面倒です。ユーザーがページを離れるのを止めることはできませんが、ユーザーがどこに向かっているのかを知っておくとよいでしょう。それが起こるとき、私の場合、それはサイト生成のリダイレクトなので知っています、それで私はセッション変数を設定することができます。

written by user913227 @2011-08-26 01:44:54Z

回答 1 written by kay @2015-08-03 14:15:44Z
62

できないから。 新しい場所は個人情報です。 彼らがあなたのサイトを去るとき、だれもあなたが彼らがどのサイトを訪問するかについてあなたに知られて欲しいです。

コメント 1

私はあなたが間違った質問をしたと思います、あなたがあなた自身のサイトのページに行くならなぜあなたはonbeforeonloadを使うのですか?それは意味がありません。Misnyo、欲しいものを明確にしてもらえますか。

written by Michel van Engelen @2009-11-06 10:59:16Z

コメント 2

下記の@bobinceの答えはおもしろいです: stackoverflow.com/a/1687028/538387

written by 禁止 @2015-02-15 12:29:36Z

コメント 3

@MichelvanEngelen - b / cおそらく、CSSロード画面を起動して、ユーザーがどこかに移動する準備ができていることをユーザーに知らせることで、リンクをクリックして何かが起こっていることを知らせることができます。しばらくすると別のページに移動します)

written by jbyrd @2016-11-29 20:13:51Z

コメント 4

@ jbyrd、おそらく!しかし、ローダーは移動先のページではなく、移動先のページに属しているように感じます。あなたをもっとコントロールに任せてください、そして今日私たちはしばしばシェルを提示し、AJAXリクエストなどを通してデータをロードします。

written by Michel van Engelen @2016-11-30 12:31:49Z

コメント 5

@ MichelvanEngelen - これは興味深い考察です。実際、私のチームの他の誰かが最初にこの振る舞いを提案したのであって、私ではありませんでした。彼が最初にそれを提案したときは特に警戒しました。しかし、チームの他のメンバーはそれを気に入っていたので、大きな問題は考えられませんでした。

written by 2016年 @2016-11-30 15:25:52Z

回答 2 written by bfontaine @2017-01-30 15:39:24Z
20

リンク先を確認したいだけの場合は、次のようにします。

document.activeElement.href 

しかし、住所行の宛先を取得することはできません。

マウスがアドレス行に移動したときにイベントが発生する解決策を聞いたことがあります(未処理の未完成のプロセスがあることをユーザーに警告するために)。

回答 3 written by bobince @2009-11-06 11:31:27Z
18

風の答えは面白いアプローチですが、ページが離れてナビゲートされたときに要素のフォーカスを見ることは本当に信頼できません。 リンクのクリックとページからのナビゲーションの間に遅延があるため(この間、ユーザーは他の要素にフォーカスを移動することができますが、リンクがフォーカスされることもあります(キーボードコントロールやマウスダウンなしなど)。リンクをフォーカスしてからウィンドウを閉じた場合は、リンクをたどっていると思われます。

ページ上のすべてのリンクについてonclickをトラップすること(およびすべてのフォームでonsubmit )を行うことはやや信頼性が高くなりますが、それでも遅延のためにだまされる可能性があります。 たとえば、リンクをクリックした後、新しいページの読み込みが開始される前に戻るボタンをクリックします(またはEscapeキーを押します)。 繰り返しますが、ウィンドウを閉じると、リンクをたどっていると見なされます。

ユーザーがブラウザのURLボックスに入力したアドレスを取得したいのですが。

これまでに起こる方法はありません。 これは明らかにプライバシーの問題です。

コメント 1

そうです、私は答えを取り除きました。

written by 風の声 @2009-11-06 22:09:19Z

コメント 2

しかし、なぜあなたはそれをしましたか。あなたの答えが完全には正しくない場合でも、心配しないでください、人々は彼らの投票でそれを判断する機会があります。しかし、それでも他の人に役立つ可能性があります。私はあなたの「ラストフォーカス」アプローチを見たかったでしょう。

written by cprcrack @2013-11-09 00:01:53Z

コメント 3

同意しました - @KazenoKoeさんがあなたの回答を返信してください!

written by シェーンN @2015-07-29 22:31:47Z

コメント 4

ああ、さて、あなたはそれの周りにこのすべてのキラキラのキラキラを構築するときに、人々が中立的な査読としてダウン投票を見ることを期待することはできない。彼らは意図的にこれを仕事探しなどに結び付けようとしています。誰もがミスを犯しますが、仮にあったとしてもあなたは本当にあなたの履歴書にあなたの最も壮観なものを載せるだけでしょう。;-)

written by 誰かが @2016-01-18 17:56:06Z

コメント 5

Hehe、@他の人、はい:「あなたの答えが完全に正しいとは限らないのであれば、心配しないでください、人々は彼らの投票でそれを判断する機会があります」。陽気です!...:D

written by Sz。 @2018-03-24 00:08:45Z