禁止使用"后退"按钮(在IE中)
因此,在我目前的工作地点的中小型企业希望尝试禁用某些页面的"后退"按钮。我们有一个页面,用户可以在其中进行一些选择并将其提交进行处理。在某些情况下,他们必须在另一页上输入评论。
用户发现,如果提交信息并进入带有注释的页面,则不必输入注释,然后单击"后退"按钮可返回上一页。
我知道有几种不同的解决方案(很多方法比禁用后退按钮要优雅得多),但这就是我剩下的。是否可以通过更改"后退"按钮的行为来防止某人返回上一页。 (就像提交->返回错误的sorta一样)。
由于重复发布信息,我无法让它返回到上一页,然后再移动到当前页面。我只能让它不直接离开当前页面。我用Google搜索了它,但是我只看到帖子说它将始终返回到上一页。我希望有人拥有一些疯狂的功夫js技能,可以使之成为可能。
我知道每个人都说这是个坏主意,我也同意,但是有时候我们只需要按要求做。
解决方案
回答
禁用后退按钮似乎是一种"强力"方法。
另一个选择是,我们可以跳到不包含命令按钮的模式对话框,引导用户完成工作流程,并在过程完成后关闭对话框。
回答
我们可以将评论移到上一页并将其设置为必填字段吗?
禁用后退按钮将不起作用。
回答
我们可以访问服务器端源代码吗?如果是这样,我们可以在首页上进行检查,如果信息已经提交,则可以重定向到第二页(显然,我们需要使用会话)。在以前的工作中,这就是我们处理多步骤申请(如接受申请中的申请)的方式。
回答
根本没有可靠的方法可以做到这一点。我们不能保证有100%的时间可以阻止用户执行此操作。
考虑到这一点,是否值得采用极具异国情调的解决方案来禁用"大多数"时间?那是你决定的。
祝你好运。
回答
由于浏览器中javascript的安全隔离,因此我们无法更改后退按钮的功能。
也许我们可以在用户的会话中存储一些表明需要注释的内容,并在应用程序中将用户尝试加载的任何页面重定向到该注释页面?
如果用户在看到评论页面时关闭了浏览器怎么办?
我知道我们在这里没有选择的余地,但是由于他们的要求似乎是不可能的...
除非我们输入评论,否则我们可能只是认为项目未完成。因此,我们需要同时跟踪进行中的项目和已完成的项目,并在UI中进行区分,但这可能是最可靠的方法。
还是只是将评论字段放在表单页面上?
回答
我以前看过这个:
window.onBack = history.forward();
这绝对是一个肮脏的hack,如果可能的话,我将尝试不禁用后退按钮。用户可能仍然可以很轻松地解决它。而且,根据缓存的不同,无法确定是否将处理服务器代码,或者是否首先运行带有JavaScript的缓存页面。
所以,是的,使用风险自负:)
回答
不,你注定了。即使我们在其他浏览器中弹出页面并隐藏"后退"按钮,也始终会有Backspace键。
营销人员和分析师类型的问题在于,其中一些人不了解网络无状态的基本概念。他们不了解该页面是完全,完全不知道使用该页面的浏览器,并且对浏览器的绝对控制完全超出了网页的功能范围。
劝阻用户单击"后退"按钮的最佳方法是,确保用户按下后将丢失页面的所有数据,例如,注释页面是可以保存数据的唯一点,如果他们确实按了,后退按钮,他们必须重新做一遍所有事情(考虑实用性:nocache)。
用户肯定会抱怨,但这是存在这个不可思议的要求的原因,对吗?
回答
不要这样做,就是不要。这是糟糕的界面设计,会迫使用户的浏览器以他们不期望的方式运行。
我会将成功阻止后退按钮停止工作的任何脚本都视为黑客,并且我希望IE团队为其发布安全修复程序。
后退按钮是其程序界面的一部分,而不是网站。
在特定情况下,我认为最好的选择是在页面上添加一个卸载事件,以警告用户是否尚未填写表单。后退按钮将不受影响,并且将警告用户其操作。
回答
What the users have figured out is that they don't have to enter a comment if they submit the information and go to the page with the comment and then hit the back button to return to the previous page.
然后他们可能也足够聪明,可以在评论字段中输入"无评论"。
我们可以尝试强迫人们添加评论,但是我们最终可能会得到糟糕的无法使用的软件,使用户烦恼的结果,但仍然无法获得评论。通常,这是一个退后一步,从用户的角度重新考虑我们正在做的事情的好时机。
回答
我们应该保护应用程序免受双重提交的侵害,而不是破坏用户界面以隐藏该错误。
回答
作为一个简单的解决方案:试试这个。在其中插入一个更新面板和一个按钮,并使用javascript隐藏它,然后在页面加载时按它。是的,我知道这会导致页面在加载后重新发布,并且如果禁用了javascript可能无法正常工作,但是可以肯定地对后退按钮问题做出半个体面的响应。安迪