用JavaScript重新加载页面的首选方法?[关闭]


103

您希望采用哪种方式(使用按钮)重新加载当前页面?

1 <input type="button" value="Reload" onClick="history.go(0)">
2 <input type="button" value="Reload" onClick="location.reload(true)">
3 <input type="button" value="Reload" onClick="window.location.reload(true)">
4 <input type="button" value="Reload" onClick="window.location.href=window.location.href">
5 <input type="button" value="Reload" onClick="document.location.reload(true)">
6 <input type="button" value="Reload" onClick="document.location.href=document.location.href">

由于页面的网址经常更改,因此AFAIK会提供“后备功能”,例如

<a href="urlOfCurrentPage.html" onclick="window.location.reload(true);return false;">Reload</a>

不会为我工作,对吧?


请注意,数字2和3是同一回事
Matti Virkkunen 2010年

3
如果网址中存在#,则数字4和6将不会重新加载任何内容
jontro

2
数字2、3和5并非所有浏览器都实现,*.location.reload()用作参数仅用于指定是否应忽略缓存。stackoverflow.com/questions/10876244/…–
Dead.Rabit,

OP错过了所有最优选的方法:location.reload();
Doug S

Answers:


57

取决于您要做什么。那里的第四和第六种方法不会重新加载任何表单数据,它们实际上是对页面进行单独访问。某些版本的Firefox也存在第三种方法的问题。除此之外,我个人喜欢第五种。看来最清楚了。


第二种方法(.reload)在某些情况下不起作用。
亚里士多德(Aristos)2010年

因此,“ document.location.reload(true)”是跨浏览器安全和最可靠的浏览器吗?
梅尔(Mel)2010年

@梅尔,我相信。确实,窗口和文档都应该起作用。
tloflin

10
请注意,在POST上使用document.location.reload()时,浏览器将询问您是否要重新发送数据以重新加载页面。
2010年

Wimmel,是的,要修复使用PRG模式的问题:en.wikipedia.org/wiki/Post/Redirect/Get
Sarel Botha 2013年

30

您也可以这样做:

wd代表窗口 || 文件

  • wd.location.assign(wd.location.href)转到URL
  • wd.location.replace(wd.location.href)转到URL并替换历史记录中的上一页
  • wd.location.reload(<true / false / blank>)从服务器/缓存/缓存重新加载页面
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.