簡體   English   中英

當用戶離開我的網站時顯示彈出窗口

[英]Show popup when user navigates away from my website

我希望每當他/她離開我的網站(不僅是網頁,還是整個網站)時,都應該給該用戶一個彈出窗口。

我已經實現了一種方法,但是每次離開網頁時都會彈出該方法。

window.onbeforeunload = function (evt) {


  var message = 'Are you sure you want to navigate away from myWEbSite?';
  if (typeof evt == 'undefined') {
    evt = window.event;

  }
  if (evt ) {
    evt.returnValue = message;
  }

  return message;

 }

您無法獲取新的目標URL,因為這是受保護的信息(請參閱如何在javascript onbeforeunload事件中獲取目標URL?

因此,您看不到訪客是否離開了網站。

備選方案:您可以偵聽對指向另一個網頁的超鏈接的所有點擊,並實現捕獲外部鏈接的功能。

您可以刪除自己的JQuery選擇器,如下所示:

$.expr[':'].external = function(obj){
   return !obj.href.match(/^mailto\:/) && (obj.hostname != location.hostname);
};
$.expr[':'].internal = function(obj){
   return obj.hostname == location.hostname;
};

然后,您可以執行以下操作:

$(function() {
    var unloadMessage = function() {
        return "Are you sure you want to navigate away from myWEbSite?";
    };

    $('a:internal').click(function() { 
        window.onbeforeunload = null;
    });
    $('form').submit(function() { 
        window.onbeforeunload = null;
    });

    $('a:external').click(function() { 
        window.onbeforeunload = unloadMessage;
    });

    window.onbeforeunload = unloadMessage;
});

在您的特定情況下,只要單擊導航鏈接或提交內部表單,只需設置window.onbeforeunload == null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM