Javascript: Setting location.href versus location
When would you set location
to a URL string versus setting location.href
?
location = "http://www.stackoverflow.com";
vs
location.href = "http://www.stackoverflow.com";
Mozilla Developer Network Reference
Solution 1:
You might set location
directly because it's slightly shorter. If you're trying to be terse, you can usually omit the window.
too.
URL assignments to both location.href
and location
are defined to work in JavaScript 1.0, back in Netscape 2, and have been implemented in every browser since. So take your pick and use whichever you find clearest.
Solution 2:
Even if both work, I would use the latter.
location
is an object, and assigning a string to an object doesn't bode well for readability or maintenance.
Solution 3:
Like as has been said already, . location
is an objectBut that person suggested using either. But, you will do better to use the .href
version.
Objects have default properties which, if nothing else is specified, they are assumed. In the case of the location
object, it has a property called .href
. And by not specifying ANY property during the assignment, it will assume "href" by default.
This is all well and fine until a later object model version changes and there either is no longer a default property, or the default property is changed. Then your program breaks unexpectedly.
If you mean href
, you should specify href
.
Solution 4:
A couple of years ago, location
did not work for me in IE and location.href
did (and both worked in other browsers). Since then I have always just used location.href
and never had trouble again. I can't remember which version of IE that was.