防止浏览器的后退按钮重新打开上一页的弹出窗口

时间:2010-06-02 20:43:07

标签: javascript browser asp-classic browser-history

当用户点击后退按钮时,如何阻止浏览器打开上一页显示的弹出窗口?

我希望这是有道理的,但我会在下面的表格中解释:

共有三页:Page1,Page2,Page3

  1. 用户加载Page1并单击链接以使用JavaScript(即window.open(...))在新窗口中加载Page2。用户可以随时关闭Page2--但我们会假设用户在第2步之前这样做。

  2. 用户现在点击第1页上的链接以加载Page3。

  3. 用户现在在第3页上,然后点击浏览器上的后退按钮。

  4. Page1显示在浏览器中,但Page2再次显示在弹出窗口中。

  5. 所以,我想知道是否有办法阻止Page2再次弹出。如果重要的话,我也在使用经典的ASP。

3 个答案:

答案 0 :(得分:2)

如果单击链接打开Page2,单击后退按钮时如何自动打开?除非在Page1的初始加载时自动打开Page2,否则由于按下后退按钮不会弹出Page2 - 按“后退”不会单击上一页上的链接。我怀疑你的页面还有其他内容 - 我们能看到一些代码吗?

答案 1 :(得分:1)

您可以尝试在第2页上创建会话变量。并在第1页打开时检查它是否存在。或使用cookie。

编辑:

Function IsPostBack()
    IsPostBack = (Request.ServerVariables("REQUEST_METHOD") = "POST")
End Function

虽然这不会检测页面刷新..

答案 2 :(得分:1)

页面重定向到自身并插入javascript代码以根据之前按下的按钮弹出一个新窗口。我认为这是通过post或get方法确定的。我现在忘了。

因此,当用户按下后退按钮时,他们将使用嵌入的javascript代码重新加载页面,而不是原始页面。

我们已经抛弃了经典的ASP,所以我无法真正测试任何建议,但感谢您的帮助。