浏览器刷新行为

时间:2020-03-05 18:50:09  来源:igfitidea点击:

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

是否可以通过HTTP标头或者等效方式更改此行为?

解决方案

回答

我们可以从html文档的body load事件中调用form对象的reset()方法以清除表单。

h1. 参考

  • MSDN重置方法-http://msdn.microsoft.com/zh-cn/library/ms536721(VS.85).aspx
  • Mozilla开发人员中心form.reset

回答

我想知道,如果我们将页面设置为不通过元标记进行缓存,那是否可以解决问题? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html如果这样做,将会受益于禁用Javascript的浏览器的使用。

回答

<input autocomplete="off">

回答

这应该可以解决问题:

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

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

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

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

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

回答

表格上的数据不是w3c规范的一部分。这是一种浏览器功能,可让我们轻松生活。因此,如果我们不想在重新加载后保留数据,则可以在加载后将所有表单的值设置为null,如Espo所述。
即使页面没有被缓存,它也会在表单上显示数据,因为这些数据不是页面html代码的一部分。
我们也可以尝试使用此方法(不知道是否可以使用):

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

回答

将设置为"关闭"的自动完成属性添加到我们不想刷新的输入中。
例如:

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


W3C参考

尽管在参考资料中未提及,但它也与复选框(至少在firefox上)兼容。