代码之家  ›  专栏  ›  技术社区  ›  Robert S.

javascript中window.onback的意外行为?[关闭]

  •  1
  • Robert S.  · 技术社区  · 16 年前

    我使用window.onback=history.forward();防止用户重新提交数据。我知道这是一个黑客,我也不喜欢它,但这不是问题所在。问题是代码阻止其他页面返回带有代码的页面。让我澄清一下。

    pagea.aspx包含javascript代码。用户提交pageA,回击,什么都没有发生。那很好。现在,用户单击一个指向pageb.aspx的链接,它可以 有密码。当用户单击back按钮(应该带她到pagea.aspx)时,它不会。它表现出与pageb具有无返回javascript代码相同的行为。

    以下是我在pagea.aspx中实现它的方法:

    <script type="text/javascript">
    window.onback = history.forward();
    </script>
    

    我已经确认此代码只在pagea.aspx中,而不在master、includes或其他任何代码中。这是一个在SharePoint2007中运行的ASP.NET 2.0应用程序。浏览器是IE7。

    有什么想法吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   PhillFox    16 年前

    我没有时间(或SharePoint07)重现您的环境和场景,但是如果您在JavaScript中进行位置测试呢?

    像这样:

    <script type="text/javascript">
    if (window.location.indexOf("PageA.aspx", 0) > 0)
    {
       window.onback = history.forward();
    }
    </script>
    

    我无法解释发生了什么,但这应该有助于限制黑客的范围。