2

このJavascriptを正しく動作させようとしています。私の意図は、ユーザーがサイトページを閉じて「現在のページにとどまるか閉じる」というアラートを取得しようとしているときに、「OK」を押した場合は閉じて、「キャンセル」を押した場合はリダイレクトしたいということです別のページへ。問題は、同じサイトの別のページに移動しようとすると、そのポップアップが表示されることです。ページを別のページに移動するときではなく、閉じるときにのみ表示したい。それが可能かどうかはわかりませんが、あなたの助けとコメントに感謝します。

    window.onbeforeunload = fget;
function yPop(url) {
  var found = 1;
  window.onbeforeunload = '';
  window.location = url;
  return false;
}
function fget() {
  alert("Thank you for visiting our website, you are welcome any time! \n\n");
  window.location = "http://NewLink.com";
  return "\n________________________\n\n PRESS 'CANCEL' To Stay On The Current Page \n\n________________________\n";
}
4

3 に答える 3

18

問題は、同じサイトの別のページに移動しようとすると、そのポップアップが表示されることです。閉じる時だけ表示させたい

  1. これをしないでください。

  2. 閉鎖だけを検出することはできませんが、内部リンクをクリックして離脱することと、外部リンク、戻るボタン、閉じる、新しい URL を選択/入力することなど、他の種類の離脱との違いを見分けることができます。ページがロードされた後のスクリプトで、onbeforeunload イベントを設定し、すべての document.links をスキャンして、現在の location.host に対して .host をテストします。一致する場合、それは内部リンクです。この場合、true を返す前に onbeforeunload イベントを削除する onclick イベントをそれらに追加し、リンクが警告なしで正常に動作できるようにします。

  3. 真剣に、これをしないでください。それは信じられないほど苛立たしく、傲慢で役に立たないものです。悪質なスクリプトを使用する Web マスターは、インターネット地獄の第 4 サークルに送られることになります。そこでは、残りの永遠の時間を、ed、使い古した歯ブラシ、および < layer> タグだけを使用して、Netscape 4 で動作するスタイルシートを作成しなければなりません。

于 2009-01-15T18:45:59.377 に答える
0

代わりに、「このサイトを離れようとしています」ページを作成することを検討してください。サイトにない URL をラップしてそのページを指すようにし、訪問者が離れようとしていることを知らせ、戻るか続行する機会を与えるという考え方です。

予期しないモーダル ダイアログよりも穏やかで、メッセージをより適切にフォーマットでき、最終的にユーザーにまったく同じ選択肢を提供します。

于 2009-03-07T11:49:36.717 に答える
0

ウィンドウ onbeforeunload イベントを使用する必要があります。

http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx

https://developer.mozilla.org/en/DOM/window.onbeforeunload

jquery ユーザーの場合:

$(window).unload( function () { alert("Bye now!"); } );
于 2009-01-15T18:35:39.193 に答える