代码之家  ›  专栏  ›  技术社区  ›  montooner

按下后退按钮不会触发<body>的onload

  •  3
  • montooner  · 技术社区  · 15 年前

    我的结帐购物车显示(1)一个动画“处理订单…”(2)提交后,卡正在一个PHP脚本中处理。但是,当用户到达“接受订单”页面并按下后退按钮时,会触发一个错误。仍显示“处理顺序…”动画。

    (1)处理显示如下:

    <div style="position:absolute;display:none;" id="animation">
        <img src="animation.gif"/>
    </div>
    

    (2)提交按钮时,使用的javascript:

    onClick="document.getElementById('animation').style.display='block';
             document.the_form.submit();"
    

    所以,点击按钮,显示动画,提交表单,处理卡片,用户在一个新页面上。

    当用户单击后退时,我们应该看到一个没有动画的页面。但是,不会触发OnLoad,并且保存动画(显示)的最后状态。

    知道如何在用户返回页面时删除动画吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Jawa user2675589    15 年前

    在亚当A的评论的启发下,你可以在用户离开页面时隐藏动画(我怀疑通过表单提交是正常的路径),所以如果/当回到页面时,动画不会显示。

    实现这一点的一种方法是将隐藏代码添加到HTML主体的 空载 事件。

    <body onunload="document.getElementById('animation').style.display='none';">
    
        2
  •  1
  •   MalphasWats    15 年前

    在大多数现代浏览器中,单击“后退”不会重新加载页面,它只是从内存中显示上次记忆的页面(因为这可能是所需的行为)。

    在我有限的用户界面设计经验中,我不知道你为什么希望用户在提交订单后单击“后退”按钮,相反,你应该提供一个链接,引导他们前进到他们可能希望完成的下一个任务,或者,将他们转发到一个有有用任务的新页面,并在某个地方显示一条消息:“谢谢,哟”接受您的订单”。