2009-11-09 80 views
3

我的结账车在提交(2)之后显示(1)“处理订单...”的动画,并且正在用php脚本处理该卡。但是,当用户到达“接受订单”页面并按下后退按钮时会触发一个错误。 “Processing Order ...”动画仍然显示。按下后退按钮不会触发<body>的OnLoad

(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不会被触发,并且动画的最后一个状态(显示)被保存。

任何想法如何在用户返回页面时删除动画?

+0

我有同样的问题,你有没有找到解决方案?我不想按照答案中的建议使用'onunload',因为它会给用户造成混淆,因为它的工作原理如下:“处理顺序”显示出来,它被隐藏(通过'ononload') _page_ _is_ _visible_ _for_ _a_ _while_,页面重新加载。 – Patrick 2011-07-19 09:09:05

回答

3

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

实现此目的的一种方法是将隐藏代码添加到HTML主体的onunload事件。

<body onunload="document.getElementById('animation').style.display='none';"> 
1

在大多数现代浏览器中,点击返回不会重新加载页面,它只是从内存中显示它,因为它最后会记住它(因为这可能是所需的行为)。

在我有限的UI设计经验中,我不确定为什么你希望用户在提交订单后点击'后退'按钮,而应该提供一个链接,让他们转到下一个任务希望完成,或者将它们转发到具有有用任务的新页面上,并在某处显示“谢谢,您的订单已被接受”的消息。

+0

AKA在将它们转发到新页面之前杀死“Processing Order”消息。然后,如果他们决定回去,它将不会在那里。 – 2009-11-09 15:17:52