使用JavaScript更改当前网页位置的首选方法是什么?我已经看到window.navigate和document.location都使用了。行为有什么不同吗?浏览器实现有差异吗?
答案 0 :(得分:207)
window.location.href = 'URL';
是更改当前窗口位置的标准实现。
答案 1 :(得分:7)
document.locatio n是一个(已弃用但仍然存在)只读字符串属性,替换为 document.url 。
答案 2 :(得分:6)
window.location
会影响您的浏览器目标。
document.location只会影响您的浏览器和frame / iframe。
答案 3 :(得分:6)
window.location
也会对框架产生影响,
我找到的最佳形式是:
parent.window.location.href
更糟糕的是:
parent.document.URL
我做了一次大规模的浏览器测试,一些罕见的带有几个插件的IE在第二种形式下未定义。
答案 4 :(得分:5)
某些浏览器不支持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()方法,如果您想重定向到 新页面,并且不允许用户导航到原始页面 使用后退按钮。
答案 5 :(得分:4)
window.navigate
,因此应该避免使用它。使用location属性的任何其他方法都是最可靠和一致的方法
答案 6 :(得分:2)
我会选择window.location = "http://...";
。我已经编写了几年的跨浏览器JavaScript代码,而且我从来没有遇到过使用这种方法的问题。
window.navigate
和window.location.href
对我来说似乎有些奇怪。
答案 7 :(得分:1)
确实没有区别;大约有5种不同的方法。但是,我最常看到的是document.location
和window.location
,因为它们受到所有主流浏览器的支持。 (我个人从未见过在生产代码中使用window.navigate
,所以也许它没有很好的支持?)
答案 8 :(得分:0)
对document.location
的支持也很好,虽然它是一种不赞成使用的方法。
我已经使用这种方法一段时间没有问题。
你可以在这里参考更多细节:
https://developer.mozilla.org/en-US/docs/Web/API/document.location
答案 9 :(得分:0)
后来加入此对话,为面向Web的,具有分析意识的网站揭示了一个有趣的事实。将麦克风传给Michael Papworth:
https://github.com/michaelpapworth/jQuery.navigate
“使用网站分析时,由于没有在请求上传递引荐来源,因此window.location不够。插件可以解决此问题,并允许使用别名和参数化URL。”
如果检查代码是什么呢?
var methods = {
'goTo': function (url) {
// instead of using window.location to navigate away
// we use an ephimeral link to click on and thus ensure
// the referer (current url) is always passed on to the request
$('<a></a>').attr("href", url)[0].click();
},
...
};
尼托!
答案 10 :(得分:-4)
您可以使用
移动页面window.location.href =Url;