如何在 JavaScript 中强制页面加载另一个页面?


在 JavaScript 中,我们可以使用 window.location 对象来强制页面加载另一个页面。我们可以使用 location 对象来设置新页面的 URL。有不同的方法 - window.location.href 属性、window.location.assign() 和 window.location.replace() 方法,可以使用 location 对象来设置新页面的 URL。在本教程中,我们将详细讨论每个属性和方法。

Window.location.replace

第一种方法是使用window.location.href 属性。此属性包含有关页面当前 URL 的信息,可用于将用户重定向到新页面。

语法

window.location.href = "new_url";

用户将立即重定向到指定的 URL (new_url)。

为了在经过指定的时间后重定向用户,我们还可以指定 setTimout 函数,该函数允许用户在函数中指定的时间后重定向到源 URL。

setTimeout(function() {
   window.location.href = "https://tutorialspoint.com";
}, 3000);

以上示例将在 3 秒后将用户重定向到给定的 URL (https://tutorialspoint.com)。

示例

在此示例中,我们定义了一个按钮(加载),单击该按钮时会呈现函数 forceLoad()。在 forceLoad() 函数中,我们使用 window.location.href 属性重新加载新页面 - tutorialspoint 主页。

<html>
<body>
   <h2>Forced Load page using window.location.href property</h2>
   <p>Click on the below button to force reload new page</p>
   <button onclick="forceLoad()">Load</button>
   <script>
      function forceLoad() {
         window.location.href = "https://tutorialspoint.com";
      }
   </script>
</body>
</html>

window.location.replace

强制重定向到另一个页面的另一种方法是使用 window.location.replace 属性。此方法有助于用另一个页面替换浏览器历史记录中的当前页面,但在此处用户将无法返回到原始页面。

语法

window.location.replace("new_url");

在此语法中,我们将具有与 window.location.href 示例相同的效果,但这里的区别在于用户的当前页面不会存储在浏览器的历史记录中。

示例

在此示例中,我们定义了一个按钮(加载),单击该按钮时会呈现函数 forceLoad()。forceLoad() 函数呈现一个 JavaScript 方法 - location.replace(),该方法用函数中提供的 URL 中的页面替换当前源。

请注意,导航发生后,它不允许用户导航回上一个页面,而在 javascript 中使用 location.assign() 属性的情况下则可以。

<html>
<body>
   <h2>Forced Load page using window.location.replace() method</h2>
   <p>Click below button force reload new page</p>
   <button onclick="forceLoad()">Load</button>
   <script>
      function forceLoad() {
         window.location.replace("https://tutorialspoint.com");
      }
   </script>
</body>
</html>

window.location.assign

在此方法中,我们使用 window.location.assign 方法,该方法用于将新页面添加到浏览器的历史记录中,允许用户返回到用户浏览的原始页面。

语法

window.location.assign("new_url");

在此语法中,它将具有与 window.location 示例相同的效果,但这里的区别在于用户的当前页面将存储在浏览器的历史记录中。

示例

在此示例中,我们定义了一个按钮(加载),单击该按钮时会呈现函数 forceLoad()。forceLoad() 函数呈现一个 JavaScript 方法 - location.assign(),该方法导致窗口加载并显示当前 URL 中指定的文档或页面。导航发生后,它还允许用户通过按浏览器的“后退”按钮,借助名为 Location.assign() 的属性返回上一个页面。

<html>
<body>
   <h2>Window.location.assign() method</h2>
   <button onclick="forceLoad()">Load</button>
   <script>
      function forceLoad() {
         location.assign("https://tutorialspoint.com");
      }
   </script>
</body>
</html>

window.location、window.location.replace 和 window.location.assign 之间的区别

依据 window.location.href window.location.assign window.location.replace
定义 它获取当前 URL 并重定向到 URL 中指定的文档或页面。 它加载并显示 URL 中指定的文档或页面。 它用 URL 中指定的页面替换当前页面。
浏览器历史记录 它不会将新加载的文档或页面添加到浏览器历史记录中。 它将新加载的文档或页面保存在浏览器历史记录中。 它还将新加载的文档或页面保存在浏览器历史记录中。
后退 它允许用户返回到上一个页面/文档。 它还允许用户返回到上一个页面。 它不允许用户返回到上一个页面。

window.location.href 属性、window.location.replace() 和 window.location.assign() 方法之间的主要区别在于它们如何处理浏览器的历史记录。如果我们谈论 location.replace 方法,它将替换当前 URL 并且不允许用户返回到上一个页面。location.assign 方法将加载一个新文档并将其添加到浏览器的历史记录中,同时允许用户返回到先前打开的页面。最后,window.location 方法与 location.assign 相同,因为它也将新文档添加到浏览器的历史记录中。

结论

总结本文,在 JavaScript 中强制将新页面加载到另一个页面是一项简单的任务,可以使用多种 JavaScript 方法来完成,即 window.location.href 属性、window.location.replace() 方法或 window.location.assign() 方法。所有这些方法都帮助开发人员能够创建动态且交互式的网页,从而有助于创建更好的用户交互并增强用户应用程序体验。

更新于: 2023 年 2 月 23 日

6K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.