如何使用JavaScript重新加载页面

Res*_*esh 756 javascript reload

如何使用JavaScript重新加载页面?

我需要一种适用于所有浏览器的方法.

gia*_*bao 848

JavaScript 1.0

window.location.href = window.location.pathname + window.location.search + window.location.hash;
// creates a history entry
Run Code Online (Sandbox Code Playgroud)

JavaScript 1.1

window.location.replace(window.location.pathname + window.location.search + window.location.hash);
// does not create a history entry
Run Code Online (Sandbox Code Playgroud)

JavaScript 1.2

window.location.reload(false); 
// If we needed to pull the document from
//  the web-server again (such as where the document contents
//  change dynamically) we would pass the argument as 'true'.
Run Code Online (Sandbox Code Playgroud)

  • 'true'将强制页面从服务器重新加载.如果可用,'false'将从缓存重新加载. (56认同)
  • 看起来 `location.reload(forceReload: boolean)` 现在已被弃用(只是 `true`/`false` 参数),尽管它可能仍然有效。 (13认同)
  • 以下是文档的链接:https://developer.mozilla.org/en-US/docs/Web/API/window.location (10认同)
  • `.reload(true)`是否被添加到历史记录中?如果是这样,如何避免重载? (3认同)
  • 根据我的IDE不推荐使用.reload(true)或.reload(false),并且https://github.com/Microsoft/TypeScript/issues/28898-现在应使用.reload() (3认同)

Lek*_*eyn 313

location.reload();
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此MDN页面.

  • @ShivanRaptor通常没有,在Web浏览器上下文中,`location`与`window.location`相同,因为`window`是全局对象. (45认同)
  • `location.reload()`和`window.location.reload()`有什么区别? (17认同)
  • 我更喜欢使用 `window.location.reload();` 来提高可读性,因为 `location` 可能是一个局部变量 - 而您通常会避免使用名称为 `window` 的变量。 (16认同)
  • @Rimian - 恕我直言,“return false;”在处理程序中并不是绝对必要的:“reload”不会取代任何进一步的处理吗? (2认同)
  • 为什么事后需要返回 false? (2认同)
  • _“为什么你需要在之后返回 `false`?”_ 的问题目前在 [这篇文章:“为什么你需要在 onclick 的 location.reload() 之后返回 false?”](https:// /stackoverflow.com/questions/67328296/为什么需要返回 false-after-location-reload-with-onclick) (2认同)

Jer*_*lle 185

以下是使用JavaScript重新加载页面的535种方法,最简单的方法location = location.

这是第50个:

location = location
location = location.href
location = window.location
location = self.location
location = window.location.href
location = self.location.href
location = location['href']
location = window['location']
location = window['location'].href
location = window['location']['href']
location = window.location['href']
location = self['location']
location = self['location'].href
location = self['location']['href']
location = self.location['href']
location.assign(location)
location.replace(location)
window.location.assign(location)
window.location.replace(location)
self.location.assign(location)
self.location.replace(location)
location['assign'](location)
location['replace'](location)
window.location['assign'](location)
window.location['replace'](location)
window['location'].assign(location)
window['location'].replace(location)
window['location']['assign'](location)
window['location']['replace'](location)
self.location['assign'](location)
self.location['replace'](location)
self['location'].assign(location)
self['location'].replace(location)
self['location']['assign'](location)
self['location']['replace'](location)
location.href = location
location.href = location.href
location.href = window.location
location.href = self.location
location.href = window.location.href
location.href = self.location.href
location.href = location['href']
location.href = window['location']
location.href = window['location'].href
location.href = window['location']['href']
location.href = window.location['href']
location.href = self['location']
location.href = self['location'].href
location.href = self['location']['href']
location.href = self.location['href']
...
Run Code Online (Sandbox Code Playgroud)

  • 这很有趣,但现在我很困惑 (67认同)
  • 我个人不喜欢这个答案,因为这只是显示了一些改变位置的不同实现.这些方式是在javascript中执行函数或访问属性的不同方式的排列.没有不同的方法来重新加载页面. (44认同)
  • 当然还有更多,比如:`window.window.window ['window'].location = window ['window'].window ['window'] ['window'] ['window'] ['window'] [ '窗口'] [ '窗口'] [ '位置']` (32认同)
  • 它还突出了Javascript的特性:) (12认同)

Nik*_*wal 78

您可以使用执行此任务window.location.reload();.由于有很多方法可以做到这一点,但我认为这是用JavaScript重新加载同一文档的适当方法.这是解释

window.location可以使用JavaScript 对象

  • 获取当前页面地址(URL)
  • 将浏览器重定向到另一个页面
  • 重新加载同一页面

window:在JavaScript中表示浏览器中的打开窗口.

location:在JavaScript中保存有关当前URL的信息.

location对象就像是对象的一个​​片段,window并通过window.location属性调用.

location 对象有三种方法:

  1. assign():用于加载新文档
  2. reload():用于重新加载当前文档
  3. replace():用于替换当前文档的新文档

所以这里我们需要使用reload(),因为它可以帮助我们重新加载相同的文档.

所以就像使用它一样window.location.reload();.

关于jsfiddle的在线演示

要让浏览器直接从服务器检索页面而不是从缓存中检索页面,可以将true参数传递给location.reload().此方法与所有主流浏览器兼容,包括IE,Chrome,Firefox,Safari,Opera.

  • 来自 w3schools:“assign() 和 replace() 的区别在于,replace() 从文档历史记录中删除当前文档的 URL,这意味着无法使用“后退”按钮导航回原始文件。” (3认同)
  • 啊哈!`replace()`原来是我正在寻找的解决方案,因为我需要在查询字符串中略微更改来重新加载我的页面. (2认同)

Ora*_*ane 42

尝试:

window.location.reload(true);
Run Code Online (Sandbox Code Playgroud)

设置为"true"的参数会从服务器重新加载新副本.离开它将从缓存服务页面.

可以在MSDNMozilla文档中找到更多信息.

  • 第二个 ( true ) 参数已弃用 (9认同)
  • 这仍然是真的吗?这两个链接都没有提到任何重新加载的参数。 (5认同)

Sta*_*wii 40

我正在寻找有关使用POST请求检索的页面上的重新加载的一些信息,例如在提交method="post"表单之后.

要重新加载保留POST数据的页面,请使用:

window.location.reload();

要重新加载丢弃POST数据的页面(执行GET请求),请使用:

window.location.href = window.location.href;

希望这可以帮助其他人寻找相同的信息.

  • 如果当前 url 包含“#”,则“window.location.href = window.location.href”不会重新加载页面。如果不需要,您可以删除哈希 `window.location.href = window.location.href.split('#')[0];`。 (5认同)

ume*_*mer 35

这对我有用:

function refresh() {

    setTimeout(function () {
        location.reload()
    }, 100);
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/umerqureshi/znruyzop/

  • @O.Kuz 不这么认为。假设如果您将该值设置为 5000ms,则 5 秒后将发生重新加载。请参阅http://jsfiddle.net/umerqureshi/znruyzop/446/ (2认同)

小智 35

要使用JavaScript重新加载页面,请使用:

window.location.reload();
Run Code Online (Sandbox Code Playgroud)


小智 15

如果你放

window.location.reload(true);
Run Code Online (Sandbox Code Playgroud)

在页面的开头没有其他条件限定为什么代码运行,页面将加载,然后继续重新加载自己,直到您关闭浏览器.


gui*_* 桂林 11

location.href = location.href;
Run Code Online (Sandbox Code Playgroud)

  • 现代浏览器会忽略这一点,因为href不会更改,因此无需重新加载它.您应该仅将此作为旧浏览器的故障转移而不重新加载:(location.reload?location.reload():location.href = location.href) (5认同)
  • @RadekPech 哪些旧浏览器没有 `location.reload()`? (2认同)

Aru*_*E S 8

使用按钮或只是将其放在"a"(锚)标签内:

<input type="button" value="RELOAD" onclick="location.reload();" />
Run Code Online (Sandbox Code Playgroud)

尝试这些以满足其他需求:

Location Objects has three methods --

assign() Used to load a new document
reload() Used to reloads the current document.
replace() Used to replace the current document with a new one
Run Code Online (Sandbox Code Playgroud)


Jos*_*hua 8

为了简单易用,请使用location.reload().location.reload(true)如果您想从服务器中获取内容,也可以使用.


小智 5

这应该有效:

window.location.href = window.location.href.split( '#' )[0];
Run Code Online (Sandbox Code Playgroud)

或者

var x = window.location.href;
x = x.split( '#' );
window.location.href = x[0];
Run Code Online (Sandbox Code Playgroud)

我更喜欢这个,原因如下:

  • 删除 # 之后的部分,确保页面在浏览器上重新加载,不会重新加载包含它的内容。
  • 如果您最近提交了表单,它不会询问您是否要重新发布最后的内容。
  • 即使在最新的浏览器上它也应该可以工作。在 Lasted Firefox 和 Chrome 上测试。

或者,您可以使用最新的官方方法来完成此任务

window.location.reload()
Run Code Online (Sandbox Code Playgroud)