如果用户点击停留在页面上,则重定向的 Javascript 警报

Posted

技术标签:

【中文标题】如果用户点击停留在页面上,则重定向的 Javascript 警报【英文标题】:Javascript alert that redirects if user clicks stay on page 【发布时间】:2013-11-14 21:52:50 【问题描述】:

我到处搜索,但找不到我正在寻找的确切解决方案。我需要一个javascript代码,当用户尝试退出页面时,会弹出一个带有“留在页面”或“离开页面”选项的警报框。如果用户留下来,它会将他们重定向到另一个页面,如果他们选择离开,它就会离开。类似于退出飞溅的东西。我知道这是不好的做法,但这是客户想要的。任何帮助将不胜感激。在此先感谢您的帮助。

【问题讨论】:

只能用onbeforeunload问他们是否想离开...如果每个人都可以重定向你,网络将是一场噩梦 复制:***.com/questions/2663728/… 这只是警告框,如果他们选择留在页面上,我需要重定向。 @user2994045 无法完成。就像我说的,如果每个人都可以,那将是一场噩梦。客户将不得不接受这一点。深入浏览器文档,例如:developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload。只能返回字符串,不能回调 【参考方案1】:

这很老套,但可以完成这项工作

var triedToLeave = false;
function onBeforeUnload()
    triedToLeave = true;
    return "you can put your own message here";

setInterval( function ()
     if( triedToLeave )
         window.removeEventListener( "beforeunload", onBeforeUnload, false );
         document.location.href = "http://***.com/";
     
, 2000 );
window.addEventListener( "beforeunload", onBeforeUnload, false);

编辑固定功能

【讨论】:

即使不是所有的浏览器都允许你自己的消息 重定向怎么样? 非常感谢。这正是我要找的! 有没有人知道如何在点击内部链接时停止弹出退出?【参考方案2】:

这应该会实现您想要的最终结果,尽管从技术上讲,它会在用户做出决定之前将其引导至启动页面。

var notScriptLeaving = true;
window.onbeforeunload = function() 
    if (notScriptLeaving) 
        notScriptLeaving = false;
        window.location = 'http://www.example.com/'; //Splash page url goes here
        return "Are you sure you want to navigate away?";
    

【讨论】:

以上是关于如果用户点击停留在页面上,则重定向的 Javascript 警报的主要内容,如果未能解决你的问题,请参考以下文章

如果页面未被访问,则重定向到另一个页面 PHP

如果用户已登录,则重定向

如果用户未登录 Laravel,则重定向到登录页面

如果用户帐户未激活,则重定向到不同的页面

Spring Security:如果身份验证失败,则重定向到登录页面

Django:如果在 urls.py 中登录,则重定向到不同的页面