Your problem can be solved by implementing the History API, especially by using the pushState() method. I recommend reading about it in MDN. There’s also an all-in-one solution called History.js, it will help you implement it x-browser easily (It will fallback to URL hashes # if the browser doesn’t support it).
Here’s an example:
history.pushState('', 'New Page Title', newHREF);
Not excited enough? Here’s a demo that will encourage you to implement it.