Qual é o método preferido para alterar o local da página da web atual usando JavaScript? Eu vi o window.navigate e document.location usados. Existem diferenças de comportamento? Existem diferenças nas implementações do navegador?
javascript
html
navigation
dthrasher
fonte
fonte
window.location.href
é a implementação completa, maswindow.location
realiza a mesma coisa. Consulte docs.sun.com/source/816-6408-10/location.htm : "Se você atribuir uma string àlocation
propriedade de um objeto, o JavaScript cria umlocation
objeto e atribui essa string à suahref
propriedade".window.location
mas isso não indica necessariamente de qualquer maneira: developer.mozilla.org/en/window.location .window.location.href = 'URL';
e tambémwindow.location.assign('URL');
o método que é projetado para recarregar uma nova página. Mais informações podem ser encontradas w3schools.com/jsref/obj_location.aspwindow.navigate
é um método proprietário, usado pelo Internet Explorer (tenho certeza de que outros navegadores imitam a compatibilidade, o Chrome não).document.location
ouwindow.location
são objetos padrão (consulte as várias especificações HTML / HTML5 / DOM).document.location = someURL
(ouwindow.location = someURL
) provavelmente é suportado devido ao código legado. A maneira certa de fazer isso édocument.location.href = someURL
, ou talvezdocument.location.assign(someURL)
.fonte
document.locatio n é uma propriedade de cadeia de caracteres somente leitura (descontinuada, mas ainda presente), substituída por document.url .
fonte
window.location
também afeta o quadro,a melhor forma que encontrei é:
E o pior é:
Fiz um teste maciço no navegador e alguns IE raros com vários plugins são indefinidos na segunda forma.
fonte
window.location
afetará o destino do seu navegador. O document.location afetará apenas o seu navegador e o frame / iframe.fonte
window.navigate
NÃO é suportado em alguns navegadores, portanto, um deve ser evitado. Qualquer um dos outros métodos que usam a propriedade location é a abordagem mais confiável e consistentefonte
Eu iria com
window.location = "http://...";
. Estou codificando o JavaScript entre navegadores há alguns anos e nunca tive problemas ao usar essa abordagem.window.navigate
ewindow.location.href
parece um pouco estranho para mim.fonte
Realmente não há diferença; existem cerca de 5 métodos diferentes de fazê-lo. No entanto, os que eu vejo com mais frequência são
document.location
ewindow.location
porque são suportados por todos os principais navegadores. (Eu pessoalmente nunca viwindow.navigate
usado no código de produção, então talvez ele não tenha um suporte muito bom?)fonte
o suporte
document.location
também é bom, embora seja um método obsoleto. Estou usando esse método há algum tempo sem problemas. você pode consultar aqui para mais detalhes:https://developer.mozilla.org/en-US/docs/Web/API/document.location
fonte
Você pode mover sua página usando
fonte