【问题标题】:How to reload a page using JavaScript如何使用 JavaScript 重新加载页面
【发布时间】:2011-04-12 12:25:48
【问题描述】:

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

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

【问题讨论】:

    标签: javascript


    【解决方案1】:

    Javascript reload() 方法用于重新加载当前文档或 URL。 javascript location.reload(true) 方法就像浏览器中的重新加载按钮一样工作。默认情况下,JS reload() 方法从缓存中重新加载页面,但是您可以通过将 forceGet 参数设置为 true: location 来强制它从服务器端重新加载页面。重新加载(真)。 来源:https://www.coderepublics.com/JavaScript/javascript-location-reload-true.php

    贬损呢? 现在不推荐使用强制重新加载的重新加载。但是为了避免被贬低的错误,你可以使用 location.reload() 而不带 forceReload 标志。

    【讨论】:

      【解决方案2】:

      每 30 秒刷新一次页面

       <meta http-equiv="refresh" content="30">
      

      【讨论】:

        【解决方案3】:

        JavaScript 1.2 及更新版本

        window.location.reload();
        // If we needed to force the document to be fetched from the
        // web server again (such as where the document contents
        // change dynamically but cache control headers are not
        // configured properly), Firefox supports a non-standard
        // parameter that can be set to true to bypass the cache:
        //window.location.reload(true);
        

        JavaScript 1.1

        window.location.replace(window.location.pathname + window.location.search + window.location.hash);
        // does not create a history entry
        

        JavaScript 1.0

        window.location.href = window.location.pathname + window.location.search + window.location.hash;
        // creates a history entry
        

        【讨论】:

        • 看起来location.reload(forceReload: boolean) 现在已被弃用(只是true/false 参数),但它可能仍然有效。
        【解决方案4】:

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

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

        window.location.reload();
        

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

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

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

        【讨论】:

        • 感谢您的回答,包括重新加载使用POST 请求检索到的文档的参考。
        • GETPOST 方法之间的良好区别
        • 如果当前 url 包含 #window.location.href = window.location.href 不会重新加载页面。如果你不需要它,你可以删除它window.location.href = window.location.href.split('#')[0];
        【解决方案5】:

        最短 (more)

        history.go()
        

        【讨论】:

          【解决方案6】:
          location.reload();
          

          请参阅此MDN page 了解更多信息。

          如果你在 onclick 之后刷新,那么你需要在之后直接返回 false

          location.reload();
          return false;
          

          【讨论】:

          • location.reload()window.location.reload()有什么区别?
          • @ShivanRaptor 通常没有,在 Web 浏览器上下文中,locationwindow.location 相同,因为 window 是全局对象。
          • 为了便于阅读,我更喜欢使用window.location.reload();,因为location 可能是一个局部变量——而您通常会避免使用名称为window 的变量。
          • @Rimian - 恕我直言,return false; 在处理程序中不是绝对必要的:reload 不会取代任何进一步的处理吗?
          • 为什么之后需要返回false?
          【解决方案7】:

          这对我有用:

          function refresh() {    
              setTimeout(function () {
                  location.reload()
              }, 100);
          }
          

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

          【讨论】:

          • 这对我来说更可取,因为它避免了服务器端的循环条件
          • 我特别感谢包含超时功能,因为我有一条消息我仍想在刷新之前查看。赞一个!
          • 你可以设置不同的值作为setTimeout函数的第二个参数,但是它不起作用,会立即重新加载,如何解决?
          • @O.Kuz 不这么认为。假设您将值设置为 5000 毫秒,那么重新加载将在 5 秒后发生。见jsfiddle.net/umerqureshi/znruyzop/446
          【解决方案8】:

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

          window.location.reload();
          

          【讨论】:

            【解决方案9】:

            试试:

            window.location.reload(true);
            

            设置为“true”的参数会从服务器重新加载新副本。忽略它将从缓存中提供页面。

            更多信息请访问MSDNMozilla documentation

            【讨论】:

            • 如果我想刷新外部网页 www.xyz.com/abc 怎么办?
            • @Dev:您应该尝试使用稍后提到的“替换”
            • @Orane:我特别喜欢这个答案的简单性和足智多谋,因为提供了许多选项以满足操作员的询问,也就是说,感谢您在这种情况下提供权威引用链接好吧,供将来参考,因为每个浏览器都有自己的用于渲染的 JS 引擎...我认为这个问题非常笼统,应该取决于您想要做什么,因为其他网络参考:“phpied.com/files/location-location/location-location.html”可能完全满足这个问题的操作。然而,这个帮助了我;)
            • 这仍然是真的吗?这两个链接都没有提到任何重新加载的参数。
            • 第二个 (true) 参数已弃用
            【解决方案10】:

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

            JavaScriptwindow.location对象可以使用

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

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

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

            location 对象类似于window 对象的片段,通过window.location 属性调用。

            location对象有三种方法:

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

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

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

            Online demo on jsfiddle

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

            【讨论】:

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

            这应该可行:

            window.location.href = window.location.href.split( '#' )[0];
            

            var x = window.location.href;
            x = x.split( '#' );
            window.location.href = x[0];
            

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

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

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

            window.location.reload()
            

            【讨论】:

              【解决方案12】:
              location.href = location.href;
              

              【讨论】:

              • 现代浏览器会忽略这一点,因为 href 不会更改,因此无需重新加载。您应该仅将其用作旧浏览器的故障转移,无需重新加载: (location.reload ? location.reload() : location.href = location.href)
              • @RadekPech 哪些旧版浏览器没有location.reload()
              【解决方案13】:

              如果你放

              window.location.reload(true);
              

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

              【讨论】:

              • 好吧,或者直到您打开另一个 URL。这可能取决于浏览器处理连续页面(重新)加载的能力。
              • 这取决于您正确说明的放置位置。我们在这里仅指锚标记可能不是执行诸如重新加载页面之类的操作的直观元素。建议:我们这样依赖另一个 UI 对象作为目标来执行 onclick 事件。您可以在页面加载后通过定位一个 div 在 jQuery 中执行此操作,例如,如果您用 css 装饰它。这取决于您想用它做什么。在这种情况下,按钮而不是输入类型按钮。如果我们不打算将参数传递给后端应用程序,它似乎更合适。
              • IE:
              猜你喜欢
              • 2011-11-26
              • 2021-11-16
              • 1970-01-01
              • 2013-04-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-03-18
              相关资源
              最近更新 更多