在离开页面之前询问用户确认的最佳方式

Joh*_*ong 22 javascript javascript-events

我目前正在建立一个注册页面,如果用户离开,我想弹出一个CSS框询问他是否确定.我可以使用确认框来完成这个壮举,但客户说他们太难看了.我尝试过使用unload和beforeunload,但两者都无法阻止页面被重定向.使用那些事件,我返回false,所以也许有一种方法可以取消而不是返回false?

我有另一个解决方案是将它们重定向到另一个有我的弹出窗口的页面,但问题是如果他们确实想要离开页面,并且这不是一个错误,他们会丢失他们最初尝试的页面要去.如果我是用户,那会激怒我.

最后的解决方案是真正的弹出窗口.我唯一不喜欢的是主要的winow将有他们的目标页面,而pop将有我的页面.在我看来,它看起来不相干.最重要的是,我会担心弹出窗口拦截器.

只是为了添加每个人的评论.我知道阻止用户退出页面是令人恼火的,我认为不应该这样做.现在我正在使用确认框.发生的事情是它实际上并没有"阻止"用户离开,如果用户对注册有疑问,客户实际想要做的是提出建议.如果用户处于注册过程的中途并且由于某种原因离开,则客户希望向用户提供免费优惠券到研讨会(该客户正在销售研讨会)以希望说服用户注册.客户的印象是,由于用户已经在表单上,​​他正在考虑注册,因此他正在注册的内容可能是让用户注册的最终推动.理想情况下,我不必阻止用户离开,什么会一样好,而且在我看来更好的是我可以暂停卸载过程.也许睡觉命令?我不需要将用户留在页面上,因为他们将离开去任何其他页面.

此外,正如人们所说,这是一个非常可怕的标题,所以如果有人知道一个更好的标题,我真的很感激它,如果他们可以将标题改为不被垃圾邮件发送者邀请的东西.

Oli*_*Oli 28

当我看到"阻止用户"这个词时,我开始痛苦地哭泣.永远不要阻止用户,只能帮助他们.

如果他们看到您的注册页面并且跑掉了,那就是他们的选择.如果他们已经填写了一些数据(因为他们可能会意外导航),请弹出一个javascript确认框,但保留它.如果他们没有触及表格,请不要管它们 - 他们不想填写表格.

看看其他吸引用户的方法.如果您的表单庞大而且可怕,请将其分解为简单易管理的块或更好的,简化操作以至于用户只在您需要时为您提供数据.例如,在您想要向他们发布内容之前,您可能不需要他们的地址.

通过将其分成多个部分,您可以用简单的形式将它们挂钩,一旦他们投入了这些时间,他们就更有可能继续这个过程.

但是不要骚扰用户.如果他们不想注册,那么用弹出窗口和jaavscript对话来纠缠他们就会完全将他们赶出网站.

考虑到这一点,假设您只是试图阻止人们填写半填表格,有几种方法可以真正帮助人们:

  1. 检测表单是否已更改并向他们询问简单confirm()消息.

    这就是你能做的一切.CSS"pop-in"无法正常工作,因为您无法在卸载事件中控制*窗口位置.

    *您可以在所有页面的链接上放置一个事件监听器来触发检查表单,但这只有在用户点击其中一个链接时才有用.例如,如果用户单击或关闭窗口,则无济于事.你可以同时做CSS和javascript,但最终会有点混乱.

  2. 坚持幕后形式的状态.

    #1的扩展.而不是与用户争吵,让他们去他们想要的地方,但将表格的内容保存到会话或cookie(如果它适合),并在页面上放置一些东西(如页面顶部的SO的橙色提示栏) )提醒他们,他们已经开始填写表格,并给他们一个回到表格的链接.

    当他们点击该链接时,您将数据从cookie(或会话)中加载回表单并让它们继续.这有明显的好处,让他们在您的网站上做他们喜欢的事情,并保持数据的安全..是.

    如果他们没有回来并且他们的cookie /会话到期,那就是他们的错.你只能把马带到水里.强迫它喝酒不是你的工作.


Wil*_*ken 7

不要这样做.

但如果你想,试试这个.记录鼠标位置并检测快速向上推力 - 用户正在到达BIG X或左上角或右上角.现在可能是你在屏幕上显示一个不显眼的盒子的机会.

我在网上看过这个工具,这很邪恶.