ChatGPT解决这个技术问题 Extra ChatGPT

如何让浏览器导航到 JavaScript 中的 URL [重复]

这个问题在这里已经有了答案:如何重定向到另一个网页? (58 个回答) 5 年前关闭。

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

不是重复的。另一个问题是关于重定向。
不是重复的,而是相关的。另一个问题没有这个简洁的答案来阐明我的问题的解决方案。
确保使用“http://”或“https://”前缀

P
Paolo Bergantino

这适用于所有浏览器:

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

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

window.location.replace('...');

使用 window.location = '...'window.location.href = '...' 的同义词 - 来自 Window.location API
如果您想避免重新加载整个页面(尽管这在技术上不被视为导航),请查看 history.pushState 和 history.replaceState。
如果要模拟单击链接,请使用 location.href 如果要模拟 HTTP 重定向,请使用 location.replace 请注意,location.replace 不会将原始页面保留在会话历史记录中。
您还应该提到 window.location.assign('...'),它在功能上等同于 window.location.href = '...'
E
Ethan

试试这些:

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

有关更多信息,请参阅此链接:other ways to reload the page with JavaScript


如果它解释了三者之间的区别,这个答案会更有帮助。此外,请参阅 stackoverflow.com/help/how-to-answer 中的“为链接提供上下文”,因为该链接也不提供任何更多信息。
如果您将 TestCafe 与 Node.js 一起使用,那么您也可以这样做:await t.navigateTo('http://www.google.com');
location.assign 对我有用,谢谢 :)
有没有办法在任何这些或类似的调用之后等待页面完全加载?例如,如果我在 Chrome 控制台中运行它,只有最后一页(谷歌)真正加载 window.location.href = 'google.com'; window.location.assign("w3schools.com"); window.location = 'google.com';
d
drac_o

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

https://developer.mozilla.org/en-US/docs/Web/API/Window/location

https://www.w3schools.com/js/js_window_location.asp

https://web.archive.org/web/20150307183711/https://jstricks.com/javascript-redirect-page-redirection/


很好的文档,但它说分配功能不会将当前地址保存在历史记录中,这是需要考虑的事情。没有正确或错误的方式,取决于程序员的需要
@OrBetzalel,我相信分配功能确实将当前地址保存在浏览器的历史记录中(当然,这可能因浏览器而异)。请参阅 developer.mozilla.org/en-US/docs/Web/API/Location 的讨论,其中说明 window.location.replace() 不会将当前地址保存在历史记录中,但没有提及 window.location.assign()。在我自己使用 Chrome(截至 2019 年 10 月的当前 Mac 版本)进行的测试中,window.location.assign() 确实将当前地址保存在浏览器的历史记录中。