【问题标题】:Button remains disabled upon pressing back按下后按钮保持禁用状态
【发布时间】:2014-09-04 11:19:19
【问题描述】:

我在使用 Firefox 和表单提交时遇到了跨平台问题。

http://pastebin.com/BEFsBd8h

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

我知道我可以使用 onunload 事件来移除 disable 属性。但我想知道是否还有其他方法。我也试过关闭自动完成功能,可惜没用

重现错误:

 Use firefox
 Disable button
 Use sudo-submit
 Back button

测试按钮仍应处于禁用状态。

【问题讨论】:

标签: javascript jquery html firefox cross-browser


【解决方案1】:

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

两种处理方式:

  1. 实现pageshowpagehide 事件。例如。您可以在 pageshow 中重置 DOM 状态。
  2. 实现unload 事件的处理。这将完全禁用bfcache,因此会降低性能,但更容易做到。

有关详细信息,请参阅相当旧但仍然适用的 "Using Firefox 1.5 caching" 文章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 2018-07-27
    • 2013-10-14
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多