【问题标题】:Browser refresh behaviour浏览器刷新行为
【发布时间】:2010-09-08 07:24:54
【问题描述】:

当用户在浏览器上点击刷新时,它会重新加载页面但保留表单字段的内容。虽然我可以看到这是一个有用的默认设置,但它在某些动态页面上可能会很烦人,从而导致用户体验受损。

有没有办法在 HTTP 标头或等效项中更改此行为?

【问题讨论】:

  • 在您执行此操作之前,请谨慎假设每个人都希望您清除表单,因为就个人而言,我喜欢在后退/前进期间可以使用表单数据。浏览器花了很长时间才做到这一点,我讨厌它消失!
  • 别担心,我不会对所有表单禁用此功能,只是假设没有意义的少数情况。

标签: html http refresh


【解决方案1】:
<input autocomplete="off">

【讨论】:

    【解决方案2】:

    这应该可以解决问题:

    <body onload="document.FormName.reset();">
    

    将 FormName 替换为您的表单名称,然后当用户在浏览器中单击刷新时,所有字段都将被重置。

    或者,如果您只想重置某些字段,请将其添加到页面底部:

    <script type="text/javascript">
        document.getElementById('field1').value ='';
        document.getElementById('field2').value ='';
        document.getElementById('field3').value ='';
    </script>
    

    这将在用户每次进入页面时重置字段,包括刷新

    【讨论】:

      【解决方案3】:

      将设置为“关闭”的自动完成属性添加到您不想刷新的输入。 例如:

      <input type="text" name="pin" autocomplete="off" />
      

      the W3C reference

      虽然参考文献中没有提到,但它也适用于复选框,至少在 firefox 上是这样。

      【讨论】:

        【解决方案4】:

        您可以从 html 文档的正文加载事件中调用表单对象的 reset() 方法来清除表单。

        h1。参考文献

        【讨论】:

          【解决方案5】:

          我想知道,如果您通过元标记将页面设置为不缓存,那会解决问题吗? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html 如果是这样,它将受益于在禁用 Javascript 的浏览器上工作。

          【讨论】:

          • 实际上,我需要 Javascript 来处理页面的所有其他部分。
          【解决方案6】:

          表单上的数据不是 w3c 规范的一部分。这是一项让您的生活变得轻松的浏览器功能。因此,如果您不想在重新加载后保留数据,您可以在加载后将所有表单的值设置为 null,正如 Espo 所说。 即使页面没有被缓存,它也会在表单上显示数据,因为数据不是页面的 html 代码的一部分。 你也可以试试这个(不知道行不行):

          <input type="text" name="foo" value="">
          

          【讨论】:

            猜你喜欢
            • 2014-08-10
            • 1970-01-01
            • 2015-02-18
            • 2011-09-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-28
            • 2018-10-16
            相关资源
            最近更新 更多