【问题标题】:Prevent browser's back button from reopening pop up window on previous page防止浏览器的后退按钮重新打开上一页的弹出窗口
【发布时间】:2011-02-27 00:50:13
【问题描述】:

当用户单击返回按钮时,如何防止浏览器打开从上一页显示的弹出窗口?

我希望这是有道理的,但我会在下面以点的形式解释它:

共有三个页面:Page1、Page2、Page3

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

  2. 用户现在单击 Page1 上的链接以加载 Page3。

  3. 用户现在在 Page3 上并单击浏览器上的后退按钮。

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

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

【问题讨论】:

    标签: javascript browser asp-classic browser-history


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      编辑:

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

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

      【讨论】:

        【解决方案3】:

        如果 Page2 是通过单击链接打开的,那么当单击返回按钮时,它是如何自动打开的?除非 Page2 在 Page1 的初始加载时自动打开,否则它不应该因为按下后退按钮而弹出 - 按“后退”不会单击前一页上的链接。我怀疑您的页面中发生了其他事情 - 我们可以看看一些代码吗?

        【讨论】:

        • 我们已经放弃了经典的 ASP,转而使用 ASP.net(谢天谢地)。我相信正在发生的事情是用户会按下 Page1 上的提交按钮,然后将其重定向到自身。根据按下的按钮,页面将确定何时将 javascript 插入页面本身以在加载时弹出一个新窗口。我想。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多