繁体   English   中英

单击浏览器后退按钮后如何显示当前页面

[英]How to display the current page even after clicking browsers back button

即使在用户单击浏览器的“后退”按钮后,也可以保持显示同一页面吗?

它就像一个多步骤表单,在提交时会重定向到结果页面,一旦表单提交后,我不希望用户能够使用浏览器的“后退”按钮导航回任何先前的页面。 因此,我想在单击“后退”按钮时继续向用户显示相同的结果页面。 只是单击“后退”按钮上的URL可以从历史记录更改为以前的URL,但是我不希望用户返回到以前的任何页面。

如果可能的话,有人可以建议我任何有关如何实现该目标的想法。

编辑 :说有3个步骤的一些过程,然后像结果页面../step1../step2../step3../resulting page 用户可以使用后退和前进按钮来执行这些步骤,但是一旦提交了步骤3并且用户位于../resulting page我希望用户仅显示前一个显示页面的URL,同时保持结果页面处于打开状态。

是的,您可以使用以下javascript代码

function backButtonOverride()
{
    setTimeout("backButtonOverrideBody()", 1);
}

function backButtonOverrideBody()
{
    // Works if we backed up to get here
    try
    {
        window.history.forward(1);
    } 
    catch (e)
    {
        // OK to ignore
    }
    // Every quarter-second, try again. The only
    // guaranteed method for Opera, Firefox,
    // and Safari, which don't always call
    // onLoad but *do* resume any timers when
    // returning to a page
    setTimeout("backButtonOverrideBody()", 1000);
}

if (window.addEventListener) // W3C standard
{
    window.addEventListener('load', backButtonOverride, false); // NB **not** 'onload'
}
else if (window.attachEvent) // Microsoft
{
    window.attachEvent('onload', backButtonOverride);
}

每当您发现自己在想“我不希望用户...”时,都应该在此停下来。 用户负责。 他们应该能够做任何想做的事。 试图阻止他们做某事类似于告诉他们该做什么。

相反,您只需要在他们做某事时做出适当的反应即可。 在这种情况下,如果他们使用后退按钮,那么您应该做一些适当的事情。 首先,您应该设计您的应用程序,以便如果他们在完成此步骤后重新请求页面,它会执行类似将它们重定向到其他地方的操作。

其次,您需要使高速缓存失效,以便当它们返回时,页面已失效,并且不刷新页面就不会重新显示。

因此,如果页面已完成,并且重新请求了上一步,则只需将它们重定向回适当的页面。 通常,您可以通过在页面中设置某种唯一键来执行此操作,这样您就可以知道重新请求了先前完成的页面。

您无法修改浏览器的后退按钮,因为它是内置的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM