Signup/Sign In
Ask Question
Not satisfied by the Answer? Still looking for a better solution?

How do I modify the URL without reloading the page?

Is there a way I can modify the URL of the current page without reloading the page?

I would like to access the portion before the # hash if possible.

I only need to change the portion after the domain, so it's not like I'm violating cross-domain policies.

window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
by

2 Answers

kshitijrana14
This can now be done in Chrome, Safari, Firefox 4+, and Internet Explorer 10pp4+!
See this question's answer for more information: Updating address bar with new URL without hash or reloading the page
Example:
function processAjaxData(response, urlPath){
document.getElementById("content").innerHTML = response.html;
document.title = response.pageTitle;
window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
}

You can then use window.onpopstate to detect the back/forward button navigation:
window.onpopstate = function(e){
if(e.state){
document.getElementById("content").innerHTML = e.state.html;
document.title = e.state.pageTitle;
}
};
sandhya6gczb
HTML 5 has history.pushState() which will modify history entries.

function changeurl(url, title) {
var new_url = '/' + url;
window.history.pushState('data', title, new_url);

}

Login / Signup to Answer the Question.