Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击“浏览器后退”按钮后显示当前页面_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何在单击“浏览器后退”按钮后显示当前页面,javascript,jquery,Javascript,Jquery,即使在用户单击浏览器后退按钮后,是否可以继续显示相同的页面 它就像一个多步骤表单,在提交时重定向到结果页面,一旦表单被提交,我不希望用户能够使用浏览器的“后退”按钮导航回以前的任何页面。因此,我希望在单击后退按钮时继续向用户显示相同的结果页面。只需点击后退按钮的URL就可以从历史更改为以前的URL,但我不希望用户返回到以前的任何页面 如果可能的话,有人能给我一些如何实现这一目标的建议吗 编辑:假设某个过程有3个步骤,然后是结果页面,如。/step1,。/step2,。/step3,。/结果页面。

即使在用户单击浏览器后退按钮后,是否可以继续显示相同的页面

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

如果可能的话,有人能给我一些如何实现这一目标的建议吗


编辑:假设某个过程有3个步骤,然后是结果页面,如
。/step1
。/step2
。/step3
。/结果页面
。用户可以使用“后退”和“前进”按钮来执行这些步骤,但一旦提交了步骤3并且用户处于
。/结果页面
,我希望用户只显示上一个显示页面的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);
}

我不喜欢听上去居高临下,但一个简单的回答会返回过多的答案。你有没有尝试过这些结果?@ChristianVarga:“继续点击返回并查看相同页面”的结果?不,我没有遇到过类似的事情。你想的方向不对。你有没有点击我链接到你的搜索结果?这些解决方案解决了您的确切问题,但不是按照您的想法:)@ChristianVarga:我想要的是显示上一页的URL到用户访问过的URL,但保持显示相同的结果页面。假设某个过程有3个步骤,然后是结果页面,如
。/step1
。/step2
。/step3
。/结果页面
。用户可以使用“后退”和“前进”按钮来播放这些步骤,但一旦提交了步骤3并且用户位于
。/结果页面
,我希望用户在打开结果页面的同时只显示上一个显示页面的URL。我在想,是否可以以某种方式实现问题中提出的功能。我不想更改浏览器后退按钮的内置功能。