以下代码使用onbeforeunload
在用户离开网站之前显示消息。
$(window).on('beforeunload', function(){
// Was the <a> tag clicked?
if(isClicked)
{
// Reset isClicked
isClicked = false;
// Display the message
return 'You are leaving the site.';
}
});
// Define a clicked state variable with a default value;
isClicked = false;
$(window).load(function(){
// Get all tags with the specified className
var anchors = $('.leaveSite');
// Add the "onclick" listener to each one of them
anchors.each(function(index) {
$(this).click(function(){
isClicked = true;
});
});
});
我认为 onbeforeunload 在打开新的Windows /标签时有效。
当用户点击打开新窗口/标签的<a class="leaveSite">
时,如何实现同样的效果?
答案 0 :(得分:0)
要显示消息,是否应该像这样编写onbeforeunload函数
$(window).on('beforeunload', function(){
// Was the <a> tag clicked?
if(isClicked)
{
// Reset isClicked
isClicked = false;
// Display the message
alert 'You are leaving the site.';
}
});
答案 1 :(得分:0)
如果任何其他答案更好,我会很乐意接受它。
经过一些测试后,我得出结论,当链接打开新窗口/标签时,我无法触发 onbeforeunload 事件。这很简单,因为窗口对象在这些情况下从未被告知卸载(因为新页面将加载到其他地方),因此onbeforeunload
永远不会触发。
如果当前页面在将来打开新的浏览器窗口或标签页时触发新事件,也许会很高兴。
对于这种情况,最好在HTML标记中添加onclick="myAlert();"
属性,并让函数执行以下操作:
function myAlert() {
alert("A new window/tab is about to be opened.");
}