Existe alguma forma de modificar a URL da página atual sem recarregar a página?
Eu gostaria de aceder à parte antes do # hash, se possível.
Eu só preciso mudar a parte após o domínio, então ele'não é como I'estou violando políticas de domínio cruzado.
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
NOTE: Se você está trabalhando com um navegador HTML5, então você deve ignorar esta resposta. Isto é agora possível como pode ser visto nas outras respostas.
Não há como modificar a URL no navegador sem recarregar a página. A URL representa o que foi a última página carregada. Se você alterá-la (`document.location'), então ela recarregará a página.
Uma razão óbvia é que você escreve um site em www.mysite.com
que se parece com uma página de login do banco. Então você muda a barra de URL do navegador para dizer www.mybank.com'. O usuário não terá a menor idéia de que está realmente olhando para o
www.mysite.com`.
Qualquer mudança na localização (ou window.location
ou document.location
) causará um pedido naquela nova URL, se você não estiver apenas mudando o fragmento de URL. Se você mudar a URL, você muda a URL.
Use técnicas de reescrita de URLs do lado do servidor como mod_rewrite do Apache se você não gosta das URLs que está usando atualmente.
Assumindo que você'não está tentando fazer algo malicioso, qualquer coisa que você'gostaria de fazer com suas próprias URLs pode ser mágico para ser com htaccess.