询问用户何时尝试关闭浏览器选项卡

Ask user when he is trying to close browser tab

本文关键字:浏览器 选项 用户 何时尝      更新时间:2023-09-26

当用户试图关闭浏览器选项卡时,我需要问他是否想填写调查。如果他想,它应该将他重定向到谷歌表单,如果他不想,它只应该关闭选项卡。

我尝试了window.onbeforeunload,但每次点击页面按钮时都会出现确认窗口,但我只需要在尝试关闭选项卡时触发它。

有什么建议吗?

每当用户出于任何原因离开页面时,beforeunload事件就会触发。

jQuery(window).bind(
    "beforeunload", 
    function() { 
        return confirm("Do you really want to close?") 
    }
)

我假设您想要做的是在用户表示要离开时显示某种弹出窗口。

这可以通过使用javascript"mouseout"事件来实现。也就是说,如果鼠标离开浏览器窗口(比如用户关闭一个选项卡、窗口或单击另一个选项卡等),那么您的调查就会被触发。

显然,这并不总是有效的——例如,用户可能试图点击浏览器菜单项,在这种情况下,你的调查将被解雇。我也不相信它会在触摸设备上工作。

但如果你能忍受这些类型的怪癖,这里有你需要的代码。

// Set up an event listener to capture exit intent
function addEvent(obj, evt, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evt, fn, false);
    }
    else if (obj.attachEvent) {
        obj.attachEvent("on" + evt, fn);
    }
}
// Trigger exit intent on mouseout event
addEvent(document, 'mouseout', function(evt) {
    if (evt.toElement == null && evt.relatedTarget == null ) {
        console.log('Let's do some magic here');
    };
});