首页 文章

检查用户是否在浏览器中点击后退按钮

提问于
浏览
4

我正在尝试使用javascript onbeforeunload事件询问用户是否要退出页面,但我不希望事件触发(编辑:"the event"是弹出的对话框,要求用户单击确定如果用户点击后退按钮,则离开网站或点击取消以留在当前页面上,因为他们很可能会留在我的网站上 .

那么有没有办法告诉用户是否使用javascript或PHP点击后退按钮?

我已经使用隐藏的iframe获得了一个只能在IE中运行的解决方案,但是我需要一些可以用于Firefox,Chrome和Safari的东西 .

编辑:我的IE解决方案工作,因为当用户点击后退按钮时,iframe被发回,但父页面保持在同一位置 . 从这里我可以看出用户确实点击了后退按钮,所以我然后使用history.back() . 这个小小的黑客并没有寻找跨浏览器的解决方案 .

tl; dr我正在使用window.onbeforeunload弹出一个对话框,询问用户是否要离开我的网站 . 当用户点击后退按钮时,我不希望弹出这个 . How can I tell that the user has hit the back button in their browser?

谢谢,里克

3 回答

  • 3

    简短回答:

    答案很长:

    Noooooooooooooooooooooooooooo .

    请不要试图让用户留在您的网站上,除非您有充分的理由 . 保存表单字段将是一个很好用的示例 . 检查他们是否正在转移到另一个网站将是一个不好的用途 .

    人们不会像网络早期那样从一页到另一页旅行 . 相反,他们使用谷歌和社交网络来查找有趣的页面,并使用单独的不同信息 .

  • 7

    您无法事先知道用户离开您的网页时将在哪个页面上显示 . 您甚至无法获取其当前历史记录中的URL .

    我看不到你的问题的解决方案,我怀疑有一个,对不起 .

  • 0

    如果您在用户单击后退按钮时不希望发生任何事情,则您不一定需要确定后退按钮是否已被命中 .

    您的目标是确定谁“最有可能留在[您的]网站上”,并为每个想要离开的人创建一个额外的步骤 . 您试图打断并覆盖用户对浏览器行为方式的期望 .

    如果你真的想要这样做,请为所有未被后退按钮触发的卸载事件提供事件监听器:页面上的每个链接,关闭窗口等 . 它赢得了能够捕获所有事件的信息 . 但是你真的很重要,然后付出额外的努力 .

    tl; dr:将事件监听器添加到不是后退按钮的所有内容,并在回调函数中调出对话框 . 不过,它会让人失望 .

相关问题