2008-09-09 204 views
14

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

有没有一种方法,在HTTP标头或等价物,来改变这种行为?

+0

在你这样做之前,因为小心你的假设,即每个人都希望你清除表格,因为我个人喜欢表格数据在后退/前进期间可用。浏览器花了很长时间来做到这一点,我恨它消失! – 2008-09-14 19:01:31

+0

别担心,我并没有禁止所有形式的这种情况,只是少数情况下的假设没有意义。 – 2008-10-10 18:30:44

回答

30
<input autocomplete="off"> 
0

我不知道,如果设置的页面不通过meta标签被缓存,将是解决这一问题? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html如果确实如此,那么它将有利于禁用JavaScript的浏览器。

+0

实际上,我需要Javascript来处理页面的各种其他位。 – 2008-09-10 18:38:28

6

这应该做的伎俩:

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

替换窗体名称与形式的名称,然后所有的字段将被重置,当用户点击他的浏览器刷新。

或者,如果你只是想重置某些字段,添加到你的页面的底部:

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

这将每一个用户进入页面时,包括更新

0

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

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

添加autocomplete属性设置为“关闭”你不想被刷新的输入。 例如:

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

看到 the W3C reference

虽然在引用没有提及,它的工作原理也与复选框,至少在Firefox。