当用户离开我的网站时显示弹出窗口
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
。
相关文章:
- 为什么不显示警报窗口
- 如何在不使用iframe或库的情况下创建剪切显示窗口区域
- 单击角度谷歌地图中的多边形时如何显示窗口
- 单击时显示窗口警报
- 在 EXT JS 中显示窗口
- 如果用户已关闭,则不显示窗口
- JS:这有什么问题?尝试单击链接以显示窗口.提示符
- 如何在谷歌浏览器中使用 JavaScript 显示窗口打印对话框
- 如何在javascript中显示窗口位置,当localStorage但不重新加载页面时
- 自动缩放和自动居中显示窗口中的所有标记
- 不要在页面启动时显示窗口
- 如果响应有效,则显示窗口警报
- Twitter Bootstrap Modal在Rails中不显示窗口
- 暂停在执行拖放时显示窗口的拖放事件的处理;在网格之间下降
- 多次创建和显示窗口时出现问题
- 在标记's上显示窗口点击Angular谷歌地图
- 使用adobeair在最大屏幕上显示窗口
- 在鼠标上显示窗口的时间间隔为2秒
- 如何以最快的方式显示窗口
- 当Iframe改变/加载时显示窗口