[英]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.