【问题标题】:Preferred method to reload page with JavaScript? [closed]使用 JavaScript 重新加载页面的首选方法? [关闭]
【发布时间】:2011-02-07 02:56:14
【问题描述】:

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

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">

由于页面的 URL 经常更改,AFAIK 类似于“后备功能”

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

不适合我,对吧?

【问题讨论】:

  • 请注意,数字 2 和 3 是同一个东西
  • 如果 url 中有 #,数字 4 和 6 将不会重新加载任何内容
  • 数字 2、3 和 5 并非所有浏览器都实现,使用 *.location.reload() 作为参数仅用于指定是否应忽略缓存。 stackoverflow.com/questions/10876244/…
  • OP 错过了最喜欢的方法:location.reload();

标签: javascript reload


【解决方案1】:

取决于你想做什么。第四种和第六种方法不会重新加载任何表单数据,它们本质上是对页面进行单独访问。某些版本的 Firefox 也存在第三种方法的问题。除此之外,我会根据个人喜好选择第五个。好像是最清楚的。

【讨论】:

  • 第二种方法(.reload)在某些情况下不起作用。
  • 那么,“document.location.reload(true)”是跨浏览器安全且最健壮的吗?
  • @Mel,我相信是的。确实,window 和 document 都应该可以工作。
  • 请注意,当您在 POST 上使用 document.location.reload() 时,浏览器会询问您是否要重新发送数据以重新加载页面。
  • Wimmel,是的,可以修复使用 PRG 模式的问题:en.wikipedia.org/wiki/Post/Redirect/Get
【解决方案2】:

你也可以这样做:

wd 代表窗口 || 文档

  • wd.location.assign(wd.location.href)转到网址
  • wd.location.replace(wd.location.href)转到 URL 并替换历史记录中的上一页
  • wd.location.reload() : 从服务器/缓存/缓存重新加载页面

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多