【问题标题】:Refresh browser window using JS [duplicate]使用JS刷新浏览器窗口[重复]
【发布时间】:2013-11-16 10:54:23
【问题描述】:

我正在尝试使用以下代码刷新浏览器窗口:

window.location = window.location.href;

但它不会刷新窗口,但是当我尝试这样做时:

window.location = "http://www.google.com";

它确实将我重定向到 Google。谁能告诉我我在这里做错了什么?为什么不刷新浏览器窗口?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    使用window.location.reload(),它就是这样做的。

    【讨论】:

    • 另外,我会使用 window.location.reload(true);这样页面就不会从缓存中刷新 - 并不总是需要它,但有时它可以解决问题:)
    • 顺便说一句,window 对象实际上是在 Javascript 中隐式应用的,因此只要您不在本地范围内定义新的 location 对象(即 @ 987654325@ 也可以)。
    • @Kristijan 从文档来看,触发非缓存重新加载的布尔值不是规范的一部分。还是现在?有关支持此的任何信息?这当然是一件好事。
    • @MildlyInteresting 你是对的! :) 当前规范没有指定此属性,但它是跨浏览器兼容的(谈到主要浏览器)。规范链接:whatwg.org/specs/web-apps/current-work/multipage/…
    【解决方案2】:

    location.reload(forceGet) 可以解决问题。此外,您可以将参数 forceGet 设置为 true,以便它从服务器而不是浏览器缓存重新加载页面。这样做可以解决 IE11 和 Edge 的一些问题。默认情况下 (location.reload()) 将从缓存中重新加载。

    阅读:http://www.w3schools.com/jsref/met_loc_reload.asp

    过去,我使用 window.location = '' 之类的操作来刷新当前页面,但在使用 Edge 和 IE 11 时遇到了问题(没有获得完整的 url),尽管它在所有其他主要浏览器上运行良好。所以我最终使用location.reload(true) 开始在Edge 上工作。

    【讨论】:

    • 这个问题已经 3 年了,你重复了接受的答案。
    【解决方案3】:

    你甚至可以使用location.reload();

    【讨论】:

    • 不需要对存在的东西使用函数。
    【解决方案4】:

    根据我的经验,以下是最好的一个

    window.location.reload()
    

    我们也可以这样,

    window.location.href = window.location.href
    

    第二个是获取当前位置并将该位置分配为当前位置:)

    【讨论】:

      猜你喜欢
      • 2010-11-05
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多