I know this is a question much discussed but I cant figure out why it does not work for me.
This is my function:
function ShowComments(){
alert("fired");
var movieShareId = document.getElementById('movieId');
//alert("found div" + movieShareId.textContent || movieShareId.innerText);
//alert("redirect location: /comments.aspx?id=" + movieShareId.textContent || movieShareId.innerText + "/");
window.location.href = "/comments.aspx?id=" + movieShareId.textContent || movieShareId.innerText + "/";
var newLocation = window.location;
//alert("full location: " + window.location);
}
If I have the alerts uncommented or if I have mozilla's bugzilla open it works fine, otherwise it does not redirect to the other page.
Any ideas why?
If you are calling this function through a submit button. This may be the reason why the browser does not redirect. It will run the code in the function and then submit the page instead of redirect. In this case change the type tag of your button.
From this answer,
window.location.href not working
you just need to add
at the bottom of your function
Some parenthesis are missing.
Change
to
No priority is given to the
||
compared to the+
.Remove also everything after the
window.location
assignation : this code isn't supposed to be executed as the page changes.Note: you don't need to set
location.href
. It's enough to just setlocation
.I'll give you one nice function for this problem:
This is universal working solution for the
window.location
problem. Some browsers go into problem withwindow.location.href
and also sometimes can happen thatwindow.location
fail. That's why we also usewindow.location.replace()
for any case and timeout for the "last try".Though it is very old question, i would like to answer as i faced same issue recently and got solution from here -
http://www.codeproject.com/Questions/727493/JavaScript-document-location-href-not-working Solution:
This worked for me.
Make sure you're not sending a '#' at the end of your URL. In my case, that was preventing window.location.href from working.