按下后按钮保持禁用状态

时间:2014-07-14 13:58:33

标签: javascript jquery html firefox cross-browser

我在Firefox和表单提交方面存在跨平台问题。

http://pastebin.com/BEFsBd8h

在示例中,当按钮被禁用并且页面指向另一个位置时,firefox会禁用该按钮,而其他浏览器则不会。

我知道我可以使用onunload事件来删除disable属性。但我想知道是否还有另一种方式。我也试过设置自动完成功能,但唉它不起作用

重现错误:

 Use firefox
 Disable button
 Use sudo-submit
 Back button

仍应禁用测试按钮。

1 个答案:

答案 0 :(得分:2)

当Firefox遍历历史记录时,它不会总是重新加载页面,但实际上通常会使用与您离开它的状态相同的页面的缓存副本。因此,如果按钮在离开时被禁用,那么当"返回时,它将被禁用。该页面仍然缓存在后向前缓存(bfcache)中。

有两种方法可以解决这个问题:

  1. 实施pageshowpagehide个事件。例如。您可以在pageshow
  2. 中重置DOM状态
  3. 实施unload事件的处理。这将完全禁用bfcache,从而降低性能,但更容易做到。
  4. 有关详细信息,请参阅相当陈旧但仍适用的"Using Firefox 1.5 caching"文章。