Estou desenvolvendo um aplicativo web. Nele, tenho uma seção chamada categorias que, sempre que um usuário clica em uma das categorias, um painel de atualização carrega o conteúdo apropriado.
Depois que o usuário clica na categoria, quero alterar o URL da barra de endereços do navegador de
www.mysite.com/products
para algo como
www.mysite.com/products/{selectedCat}
sem atualizar a página.
Existe algum tipo de API JavaScript que posso usar para fazer isso?
fonte
path
e / ouquery string
no URL; eles não podem alterar o protocolo, domínio ou porta (pois isso seria um problema de segurança, como outros apontaram). Ahash
função acima pode alterar a âncora (ou id do fragmento)Para adicionar ao que os caras já disseram, edite a propriedade window.location.hash para corresponder à URL que você deseja em sua função onclick.
fonte
Acredito que manipular diretamente a barra de endereço para um url completamente diferente sem mover para esse url não é permitido por razões de segurança, se você estiver satisfeito com isso
www.mysite.com/products/#{selectedCat}
ou seja, um link de estilo de âncora na mesma página, em seguida, examine os vários scripts de histórico / "botão voltar" que agora estão presentes na maioria das bibliotecas javascript.
A menção do painel de atualização me leva a supor que você está usando asp.net, nesse caso, o controle de histórico do asp.net ajax é um bom lugar para começar
fonte
Não acho que isso seja possível (pelo menos mudar para um endereço totalmente diferente), pois seria um uso indevido não intuitivo da barra de endereço e poderia promover ataques de phishing.
fonte
Isso não pode ser feito da maneira que você está dizendo. O método sugerido por somej.net é o mais próximo que você pode obter. Na verdade, é uma prática muito comum na era AJAX. Até o Gmail usa isso.
fonte
como sugerido por sanchothefat deve ser a única maneira de fazer isso. Porque em todos os lugares que vi esse recurso, está sempre após o # na URL.
fonte