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


Answers:


510

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

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

window.location.href示例:

window.location.href = 'http://www.google.com'; //Will take you to Google.

window.open()示例:

window.open('http://www.google.com'); //This will open Google in a new window.


附加信息:

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


5
该标准可能确实说这window.location.href是属性,而不是方法,但是Internet Explorer(至少10版)也允许您将其href视为方法。我已经看到了它的工作原理,仅在IE10中使用了一页。这可能就是请求者调用href方法的原因。请参阅IE与window.location.href不兼容的问题。但是,是的,最好将其href用作属性,该属性可以在包括IE在内的任何浏览器中使用
罗里·奥肯

5
@ RoryO'Kane,这个问题被要求在2011年,我怀疑用户指的是IE 10
山姆士

9
真正。但是我认为,尽管不确定,但旧版本的IE可能会window.location.href以相同的方式处理。毕竟,IE的新版本一般都越来越的基于标准的,而不是更少。因此,如果IE10仍在违反标准,则较旧的版本也可能这样做。
罗里·奥肯

32
  • window.open 将使用指定的URL打开一个新的浏览器。

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

还要注意,这window.open()是窗口对象本身的函数,而window.location对象是暴露各种其他方法和属性的对象


14

window.open是一种方法;您可以打开新窗口,并可以对其进行自定义。window.location.href只是当前窗口的一个属性。


12

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

我将按目标使用:

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

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

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

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

3.知道页面的当前地址

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

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


9

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


如果将“ _self”作为附加参数传递,则window.open()也可以在同一窗口中打开“ URL”。
user761100

1

window.open会在新的浏览器标签页中打开链接

window.location.href会在当前标签页中打开链接(而不是你可以使用location

这是小提琴示例(在SO代码片段window.open中不起作用)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.