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

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

【问题讨论】:

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

标签: javascript html


【解决方案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://stackoverflow.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?";
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2015-03-27
    • 2013-06-02
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多