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

时间:2009-06-04 01:47:15

标签: javascript html navigation

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

11 个答案:

答案 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.navigatewindow.location.href对我来说似乎有些奇怪。

答案 7 :(得分:1)

确实没有区别;大约有5种不同的方法。但是,我最常看到的是document.locationwindow.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;