如何让浏览器在JavaScript中导航到URL

jju*_*uma 828 javascript browser navigation

使用JavaScript让Web浏览器导航到您选择的URL的最佳(正确,现代,跨浏览器,安全)方法是什么?

Pao*_*ino 1335

这适用于所有浏览器:

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

如果您想更改页面而不反映在浏览器后退历史记录中,您可以执行以下操作:

window.location.replace('...');
Run Code Online (Sandbox Code Playgroud)

  • 使用`window.location ='...'`是`window.location.href ='...'`的同义词 - 来自[Window.location API](https://developer.mozilla.org/en-美国/文档/网络/ API /窗/位置). (14认同)
  • 如果要避免重新加载整个页面(尽管从技术上讲这不会被视为导航),请查看一下history.pushState和history.replaceState。 (3认同)
  • 如果要模拟单击链接,请使用“location.href” 如果要模拟 HTTP 重定向,请使用“location.replace” 请注意,“location.replace”不会在会话历史记录中保留原始页面。 (3认同)
  • 你还应该提到 `window.location.assign('...')`,它在功能上等同于 `window.location.href = '...'`。 (3认同)

til*_*lak 85

试试这些:

  1. window.location.href = 'http://www.google.com';
  2. window.location.assign("http://www.w3schools.com");
  3. window.location = 'http://www.google.com';

有关更多信息,请参阅此链接:使用JavaScript重新加载页面的其他方法

  • 如果它解释了三者之间的差异,这个答案会更有帮助.此外,请参阅http://stackoverflow.com/help/how-to-answer上的"提供链接上下文",因为该链接也不提供任何其他信息. (62认同)

Bog*_*dan 34

看来这是正确的方法 window.location.assign("http://www.mozilla.org");

  • 好的文档,但它说,assign函数不会保存历史记录中的当前地址,这是值得考虑的事情.没有正确或不正确的方法,取决于程序员的需求 (22认同)
  • @OrBetzalel,我相信分配函数确实将当前地址保存在浏览器的历史记录中(当然,这可能因浏览器而异)。请参阅 https://developer.mozilla.org/en-US/docs/Web/API/Location 上的讨论,其中解释了 `window.location.replace()` 不会将当前地址保存在历史记录中,但不会这样提到了“window.location.assign()”。在我自己使用 Chrome(截至 2019 年 10 月的当前 Mac 版本)进行的测试中,“window.location.assign()”确实将当前地址保存在浏览器的历史记录中。 (2认同)