浏览器刷新行为
时间: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上)兼容。