What is the difference between window.location.href
and window.open ()
methods in JavaScript?

- 85,173
- 29
- 368
- 345

- 3,950
- 4
- 19
- 22
-
2Related: [How do I redirect to another webpage](https://stackoverflow.com/questions/503093/how-do-i-redirect-to-another-webpage) – krubo Oct 20 '19 at 09:44
6 Answers
window.location.href
is not a method, it's a property that will tell you the current URL location of the browser. Changing the value of the property will redirect the page.
window.open()
is a method that you can pass a URL to that you want to open in a new window. For example:
window.location.href example:
window.location.href = 'http://www.google.com'; //Will take you to Google.
window.open() example:
window.open('http://www.google.com'); //This will open Google in a new window.
Additional Information:
window.open()
can be passed additional parameters. See: window.open tutorial

- 60,353
- 20
- 145
- 161
-
5The standard probably does say that `window.location.href` is a property, not a method, but Internet Explorer (version 10 at least) allows you to treat `href` as a method too. I've seen it work, only in IE10, on one page I've used. That's probably why the asker was calling `href` a method. See the question [IE incompatability with window.location.href](http://stackoverflow.com/q/10201809/578288). But yes, it's better to use `href` as a property, which will work in any browser, [including IE](http://msdn.microsoft.com/en-us/library/ie/ms533867%28v=vs.85%29.aspx). – Rory O'Kane May 30 '13 at 19:50
-
5@RoryO'Kane, this question was asked in 2011. I doubt the user was referring to IE 10. – James Hill May 30 '13 at 20:35
-
9True. But I think it’s likely, though not certain, that older versions of IE treated `window.location.href` the same way. After all, newer versions of iE are generally getting *more* standards-based, not less. So if IE10 is still breaking the standard, then older versions probably did too. – Rory O'Kane May 30 '13 at 21:41
-
4What's the difference between using `window.open(newUrl, '_self')` and location.href = newUrl` ? Both will open the `newUrl` in the same tab. – Harry Sep 15 '20 at 14:56
window.open
will open a new browser with the specified URL.window.location.href
will open the URL in the window in which the code is called.
Note also that window.open()
is a function on the window object itself whereas window.location
is an object that exposes a variety of other methods and properties.

- 15,527
- 5
- 48
- 62
There are already answers which describes about window.location.href property and window.open() method.
I will go by Objective use:
1. To redirect the page to another
Use window.location.href. Set href property to the href of another page.
2. Open link in the new or specific window.
Use window.open(). Pass parameters as per your goal.
3. Know current address of the page
Use window.location.href. Get value of window.location.href property. You can also get specific protocol, hostname, hashstring from window.location object.
See Location Object for more information.

- 1
- 1

- 55,015
- 38
- 216
- 226
window.open is a method; you can open new window, and can customize it. window.location.href is just a property of the current window.

- 748
- 9
- 18

- 378
- 1
- 4
- 16
window.open ()
will open a new window, whereas window.location.href
will open the new URL in your current window.

- 214,931
- 59
- 362
- 292
-
3window.open() can also open the 'url' in the same window if '_self' is passed as additional parameter. – user761100 Oct 04 '18 at 17:23
-
yes, had the same doubt. What's the difference between using `window.open(newUrl, '_self')` and location.href = newUrl` ? – Harry Sep 15 '20 at 14:55
The window.open
will open url in new browser Tab
The window.location.href
will open url in current Tab (instead you can use location
)
Here is example fiddle (in SO snippets window.open doesn't work)
var url = 'https://example.com';
function go1() { window.open(url) }
function go2() { window.location.href = url }
function go3() { location = url }
<div>Go by:</div>
<button onclick="go1()">window.open</button>
<button onclick="go2()">window.location.href</button>
<button onclick="go3()">location</button>

- 85,173
- 29
- 368
- 345