JavaScript中的Window.location.href和Window.open()方法

mas*_*sif 252 javascript location window href window-object

JavaScript中的方法window.location.hrefwindow.open ()方法有什么区别?

Jam*_*ill 479

window.location.href不是一种方法,它是一个属性,它会告诉你浏览器的当前URL位置.更改属性的值将重定向页面.

window.open()是一种方法,您可以将URL传递给要在新窗口中打开的URL.例如:

window.location.href示例:

window.location.href = 'http://www.google.com'; //Will take you to Google.
Run Code Online (Sandbox Code Playgroud)

window.open()示例:

window.open('http://www.google.com'); //This will open Google in a new window.
Run Code Online (Sandbox Code Playgroud)


附加信息:

window.open()可以传递其他参数.请参阅:window.open教程

  • 真正.但我认为,虽然不确定,IE的旧版本可能会以同样的方式处理`window.location.href`.毕竟,更新版本的iE通常会以*更多*标准为基础,而不是更少.因此,如果IE10仍然打破了标准,那么旧版本可能也是如此. (9认同)
  • 标准可能会说`window.location.href`是属性,而不是方法,但Internet Explorer(至少版本10)允许您将`href`视为一种方法.我已经看到它在我使用的一个页面上只在IE10中工作.这可能就是为什么提问者称`href`为方法.请参阅问题[IE不兼容与window.location.href](http://stackoverflow.com/q/10201809/578288).但是,是的,最好使用`href`作为属性,它可以在任何浏览器中工作,[包括IE](http://msdn.microsoft.com/en-us/library/ie/ms533867%28v=vs. 85%29.aspx). (5认同)
  • @ RoryO'Kane,这个问题是在2011年被问到的.我怀疑用户是指IE 10. (5认同)
  • 使用 `window.open(newUrl, '_self')` 和 location.href = newUrl` 有什么区别?两者都会在同一选项卡中打开“newUrl”。 (4认同)

Tom*_*Tom 32

  • window.open 将打开具有指定URL的新浏览器.

  • window.location.href 将在调用代码的窗口中打开URL.

还要注意,它window.open()是窗口对象本身的函数,而是window.location一个公开各种其他方法和属性的对象.


ngi*_*ngi 14

window.open是一种方法; 你可以打开新窗口,并可以自定义它.window.location.href只是当前窗口的一个属性.


Som*_*luk 12

已经有答案描述了window.location.href属性和window.open()方法.

我会按目标使用:

1.将页面重定向到另一个页面

使用window.location.href.将href属性设置为另一个页面的href.

2.在新窗口或特定窗口中打开链接.

使用window.open().根据您的目标传递参数.

3.了解页面的当前地址

使用window.location.href.获取window.location.href属性的值.您还可以从window.location对象获取特定协议,主机名,哈希串.

有关更多信息,请参阅位置对象


Jos*_*ber 9

window.open ()将打开一个新窗口,而window.location.href在当前窗口中打开新URL.

  • 如果“_self”作为附加参数传递,window.open() 还可以在同一窗口中打开“url”。 (3认同)