Estou olhando para escrever um pedaço de javascript que acrescentará um parâmetro ao URL atual e, em seguida, atualizará a página - como posso fazer isso?
javascript
jquery
refresh
amador
fonte
fonte
Respostas:
isso deve funcionar (não testado!)
fonte
Menor que a resposta aceita, fazendo o mesmo, mas mantendo-o simples:
Não precisamos alterar o URL inteiro, apenas a string de consulta, conhecida como atributo de pesquisa do local.
Quando você atribui um valor ao atributo de pesquisa, o ponto de interrogação é inserido automaticamente pelo navegador e a página é recarregada.
fonte
window.location.search = '?param=42';
A maioria das respostas aqui sugere que se deve anexar o (s) parâmetro (s) ao URL, algo como o seguinte snippet ou uma variação semelhante:
Isso funcionará muito bem para a maioria dos casos.
Contudo
Essa não é a maneira correta de anexar um parâmetro a um URL na minha opinião.
Como a abordagem sugerida não testa se o parâmetro já está definido na URL, se não for cuidadoso, pode-se acabar com uma URL muito longa com o mesmo parâmetro repetido várias vezes. ou seja:
neste ponto é onde os problemas começam. A abordagem sugerida pode e criará um URL muito longo após várias atualizações de página, tornando o URL inválido. Siga este link para obter mais informações sobre URL longo Qual é o tamanho máximo de um URL em diferentes navegadores?
Esta é minha abordagem sugerida:
Com esta função, basta fazer o seguinte:
fonte
if(window.location.search.indexOf('¶m=') == -1) {window.location.search += '¶m=1';}
indexOf
pode introduzir complexidade desnecessária no código.fonte
Versão mais compat
fonte
Verifique o código abaixo:
fonte
Uma pequena correção de erro para a resposta pensativa de @ yeyo acima.
Mudança:
var parameters = parser.search.split(/\?|&/);
Para:
var parameters = parser.search.split(/\?|&/);
fonte
Tente isto
fonte
Além disso:
Apenas uma linha de resposta Shlomi utilizável em bookmarklets
fonte