【问题标题】:How to disable browser postback warning dialog如何禁用浏览器回发警告对话框
【发布时间】:2008-09-18 15:42:10
【问题描述】:

我有一个只在 IE7(内部网站)上运行的 asp.net 应用程序。

当用户需要输入数据时,我会弹出一个带有表单的子窗口。当表单关闭时,它会调用 javascript:window.opener.location.reload(true) 以便新数据将显示在主页上。

问题是浏览器抱怨它必须重新发布页面。有什么办法可以关闭这个功能?

【问题讨论】:

    标签: asp.net javascript internet-explorer-7


    【解决方案1】:

    不,但有一个解决方案。在有人将数据发布到页面后立即使用 302 重定向通常被认为是很好的设计。这可以防止该弹出窗口发生。请允许我详细说明。

    1) 用户填写表单并通过 POST 提交数据。

    2) 后端接收数据并对其进行操作。

    3) 后端不会将内容返回给用户,而是在处理完页面后立即发出 302 重定向(如果需要,可能会将用户重定向回完全相同的 url)

    4) 用户将看到的页面是您告诉他们的浏览器重定向到的页面。他们将使用标准 GET 请求加载重定向页面。如果他们尝试刷新页面,则不会重新发布数据。问题解决了。

    【讨论】:

      【解决方案2】:

      这是 ASP.NET 通常的“回发”方式的问题。如果您需要在没有此警告的情况下重新加载页面,则此页面必须来自 GET,而不是 POST。你可以自己做一个 Response.Redirect("...") 。但这会破坏视图状态的使用。

      【讨论】:

        【解决方案3】:

        asp.net mvc 修复了这个问题,这不仅仅是 ie7 的问题,而是大多数浏览器的安全功能。除了你可以用 js 更新主窗体中的内容而不是重新加载整个页面之外,我知道没有任何修复方法

        【讨论】:

          【解决方案4】:

          这是因为 window.opener 中的页面来自一个 POST 请求 也许你可以使用 javascript:window.opener.location = window.opener.location;如果可以在没有 POST 的情况下获取数据,则只执行 GET 请求。

          【讨论】:

            【解决方案5】:

            我不相信有办法做到这一点。相反,为什么不将父窗口直接指向页面而不重新加载。

            javascript:window.opener.location='你的网址'

            【讨论】:

              【解决方案6】:

              AFAIK,不是通过你的脚本。

              你可以试试:

              window.opener.location = '#';
              

              它应该绕过浏览器重新发布。并且,您可以根据需要调整哈希名称。

              【讨论】:

                【解决方案7】:

                如果你从第1页移动到第2页,并且想要禁止浏览器返回第1页,那么在第1页的顶部添加以下内容。

                <script>
                if(window.history.forward(1) != null)
                                 window.history.forward(1);
                </script>
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-11-12
                  • 2022-11-29
                  • 1970-01-01
                  • 2015-10-04
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多