我应该在 JavaScript 中使用 window.navigate 还是 document.location ?

IT技术 javascript html navigation
2021-02-20 05:33:43

使用 JavaScript 更改当前网页位置的首选方法是什么?我已经看到使用了 window.navigate 和 document.location。行为上有什么不同吗?浏览器实现是否存在差异?

6个回答
window.location.href = 'URL';

是更改当前窗口位置的标准实现。

@Goyuix,说这window.location.href是完整的实现可能更准确,但 window.location完成了同样的事情。请参阅docs.sun.com/source/816-6408-10/location.htm:“如果将字符串分配给location对象属性,JavaScript 将创建一个location对象并将该字符串分配给其href属性。”
2021-04-16 05:33:43
您是否有参考资料表明 window.location.href 是标准实现?该标准是否同样适用于所有浏览器?您当然看起来知识渊博,15 票以上(加上已接受的答案)有助于使其更具权威性,但我认为最好查看浏览器开发团队的文档来支持该声明。
2021-04-17 05:33:43
看起来这些人决定这是个人喜好:developer.mozilla.org/Talk:en/DOM/window.location或者查看底部附近的示例,他们只使用window.location但不一定指示任何一种方式:developer.mozilla.org/en/window.location
2021-04-21 05:33:43
window.navigate是 Internet Explorer 使用的专有方法(我确定其他浏览器是否为了兼容性而模仿它,Chrome 没有)。document.location或者window.location是标准对象(请参阅各种 HTML/HTML5/DOM 规范)。document.location = someURL(或window.location = someURL) 可能由于遗留代码而受支持。正确的做法是document.location.href = someURL,或者也许document.location.assign(someURL)
2021-05-05 05:33:43
我目前正在将其用于 android 开发。我无法在 Android 的默认浏览器中从 JS 重定向页面。我尝试过window.location.href = 'URL';,也是window.location.assign('URL');为重新加载新页面而设计的方法。更多信息可以在w3schools.com/jsref/obj_location.asp找到
2021-05-13 05:33:43

某些浏览器不支持 window.navigate

在java脚本中有很多重定向的方法,见下面的代码和解释

window.location.href = "http://krishna.developerstips.com/";
window.location = "http://developerstips.com/";
window.location.replace("http://developerstips.com/");
window.location.assign("http://work.developerstips.com/");

window.location.href从浏览器的缓存加载页面,并不总是将请求发送到服务器。因此,如果您在缓存中有可用的旧版本页面,那么它将重定向到那里,而不是从服务器加载新页面。

window.location.assign()方法用于重定向,如果您想允许用户使用后退按钮返回到原始文档。

window.location.replace()方法,如果您想重定向到新页面并且不允许用户使用后退按钮导航到原始页面。

window.location 也影响到框架,

我发现的最佳形式是:

parent.window.location.href

而更糟糕的是:

parent.document.URL 

我做了一个大规模的浏览器测试,一些罕见的带有几个插件的 IE 用第二种形式未定义。

按照这个逻辑,top.window.location.href 不是更好吗?
2021-04-26 05:33:43

window.location将影响您的浏览器目标。document.location 只会影响您的浏览器和 frame/iframe。

document.location是一个(已弃用但仍然存在)只读字符串属性,由document.URL.

我找不到任何表明document.location已弃用的信息。请添加来源。
2021-04-16 05:33:43