Como redirecionar o usuário de uma página para outra usando jQuery ou JavaScript puro?
javascript
jquery
redirect
venkatachalam
fonte
fonte
window.location
é o mesmo quewindow.location.href
, em termos de comportamento.window.location
retorna um objeto. Se.href
não estiver definido, owindow.location
padrão é alterar o parâmetro.href
. Conclua: Use qualquer um deles.Respostas:
Não basta redirecionar usando jQuery
O jQuery não é necessário e
window.location.replace(...)
simulará melhor um redirecionamento HTTP.window.location.replace(...)
é melhor do que usarwindow.location.href
, porquereplace()
não mantém a página de origem no histórico da sessão, o que significa que o usuário não ficará preso em um fiasco interminável de botão voltar.Se você deseja simular alguém clicando em um link, use
location.href
Se você deseja simular um redirecionamento HTTP, use
location.replace
Por exemplo:
fonte
$(location).attr('href',url);
.window.location.href
parece ter um comportamento inconstante em alguns navegadores; na verdade, ele não funciona na minha versão do Firefox. Já ouvi falar de configuraçãowindow.location
diretamente não funcionando nas versões do IE.AVISO: Esta resposta foi meramente fornecida como uma solução possível; obviamente não é a melhor solução, pois requer jQuery. Em vez disso, prefira a solução JavaScript pura.
fonte
window.location
não é um elemento e, portanto, não possui atributos..attr()
realmente define atributos (ou seja.setAttribute()
)Maneira JavaScript "baunilha" padrão para redirecionar uma página
Ou, mais simplesmente: (já que
window
é Global)A seção a seguir é para aqueles que usam
HTTP_REFERER
como uma das muitas medidas de segurança (embora não seja uma ótima medida de proteção). Se você estiver usando o Internet Explorer 8 ou inferior, essas variáveis serão perdidas ao usar qualquer forma de redirecionamento de página JavaScript (location.href, etc.).Abaixo, implementaremos uma alternativa para o IE8 e inferior, para não perdermos o HTTP_REFERER. Caso contrário, você quase sempre pode simplesmente usar
window.location.href
.Testar contra
HTTP_REFERER
(colar URL, sessão etc.) pode ajudar a saber se uma solicitação é legítima. ( Nota: também existem maneiras de contornar / falsificar esses referenciadores, conforme observado pelo link de droop nos comentários)Solução simples de teste entre navegadores (fallback para window.location.href para Internet Explorer 9+ e todos os outros navegadores)
Uso:
redirect('anotherpage.aspx');
fonte
location.assign
? Uso no meu aplicativo com o IE8 e não perco oHTTP_REFERER
cabeçalho.Existem várias maneiras de fazer isso.
fonte
window.navigate
é antigo apenas para o IE (o Firefox / Chrome não suporta isso). Se você deseja enumerar todas as opções, não esqueçadocument.location
.Isso funciona para todos os navegadores:
fonte
document.location.replace(redirectURL)
se você não quer que a primeira página a ser no histórico do navegadorAjudaria se você fosse um pouco mais descritivo no que está tentando fazer. Se você está tentando gerar dados paginados, existem algumas opções em como fazer isso. Você pode gerar links separados para cada página que deseja acessar diretamente.
Observe que a página atual no exemplo é tratada de maneira diferente no código e com CSS.
Se você deseja que os dados paginados sejam alterados via AJAX, é aqui que o jQuery entra. O que você faria é adicionar um manipulador de cliques a cada uma das tags de âncora correspondentes a uma página diferente. Esse manipulador de cliques invocaria algum código jQuery que acessa a próxima página via AJAX e atualiza a tabela com os novos dados. O exemplo abaixo supõe que você tenha um serviço da web que retorna os dados da nova página.
fonte
Também acho que
location.replace(URL)
é o melhor caminho, mas se você deseja notificar os mecanismos de pesquisa sobre seu redirecionamento (eles não analisam o código JavaScript para ver o redirecionamento), adicione arel="canonical"
metatag ao seu site.Adicionar uma seção noscript com uma metatag de atualização HTML também é uma boa solução. Sugiro que você use esta ferramenta de redirecionamento JavaScript para criar redirecionamentos. Ele também possui suporte ao Internet Explorer para passar o referenciador HTTP.
O código de exemplo sem demora se parece com isso:
fonte
Mas se alguém quiser redirecionar para a página inicial, ele pode usar o seguinte snippet.
Seria útil se você tivesse três ambientes diferentes como desenvolvimento, preparo e produção.
Você pode explorar esse objeto window.location colocando apenas essas palavras no Chrome Console ou no Firebug 's Console.
fonte
window.location = '/'
O JavaScript fornece vários métodos para recuperar e alterar o URL atual que é exibido na barra de endereços do navegador. Todos esses métodos usam o objeto Location, que é uma propriedade do objeto Window. Você pode criar um novo objeto Local que tenha o URL atual da seguinte maneira.
Estrutura básica de uma URL
Protocolo - especifica o nome do protocolo a ser usado para acessar o recurso na Internet. (HTTP (sem SSL) ou HTTPS (com SSL))
nome do host - o nome do host especifica o host que possui o recurso. Por exemplo, www.stackoverflow.com. Um servidor fornece serviços usando o nome do host.
porta - Um número de porta usado para reconhecer um processo específico para o qual uma Internet ou outra mensagem de rede deve ser encaminhada quando chegar a um servidor.
nome do caminho - O caminho fornece informações sobre o recurso específico no host que o cliente da Web deseja acessar. Por exemplo, stackoverflow.com/index.html.
query - Uma string de consulta segue o componente do caminho e fornece uma string de informações que o recurso pode utilizar para alguma finalidade (por exemplo, como parâmetros para uma pesquisa ou como dados a serem processados).
hash - a parte âncora de um URL, inclui o sinal de hash (#).
Com essas propriedades do objeto Location, você pode acessar todos esses componentes de URL
Agora, se você deseja alterar uma página ou redirecionar o usuário para outra página, pode usar a
href
propriedade do objeto Location como estaVocê pode usar a propriedade href do objeto Location.
O objeto de localização também possui esses três métodos
Você pode usar assign () e substituir métodos também para redirecionar para outras páginas como estas
Como assign () e replace () diferem - A diferença entre o método replace () e o método assign () () é que replace () remove a URL do documento atual do histórico, significa que não é possível usar o botão "voltar" para voltar ao documento original. Portanto, use o método assign () se desejar carregar um novo documento e deseje dar a opção de voltar ao documento original.
Você pode alterar a propriedade href do objeto de localização usando o jQuery também como este
E, portanto, você pode redirecionar o usuário para outro URL.
fonte
Basicamente, o jQuery é apenas uma estrutura JavaScript e, para fazer algumas coisas como redirecionamento , neste caso, você pode simplesmente usar JavaScript puro; nesse caso, você tem três opções usando o JavaScript vanilla:
1) Usar localização substituir , este irá substituir a história atual da página, significa que não é possível utilizar a volta botão para voltar para a página original.
2) Usando a atribuição de localização , isso manterá o histórico para você e, com o uso do botão Voltar, você poderá voltar à página original:
3) Recomendo o uso de uma dessas maneiras anteriores, mas essa poderia ser a terceira opção usando JavaScript puro:
Você também pode escrever uma função no jQuery para lidar com isso, mas não é recomendado, pois é apenas uma função JavaScript pura de uma linha; também é possível usar todas as funções acima sem window se você já estiver no escopo da janela, por exemplo
window.location.replace("http://stackoverflow.com");
poderia serlocation.replace("http://stackoverflow.com");
Também mostro a todos na imagem abaixo:
fonte
assign()
maishref=
também como o último não fez trabalho adequadamente para mim em alguns casos.Deve apenas ser capaz de definir usando
window.location
.Exemplo:
Aqui está uma postagem anterior sobre o assunto: Como redirecionar para outra página da web?
fonte
Antes de começar, o jQuery é uma biblioteca JavaScript usada para manipulação do DOM. Portanto, você não deve usar o jQuery para redirecionar uma página.
Uma citação de Jquery.com:
Foi encontrado aqui: https://jquery.com/browser-support/
Portanto, o jQuery não é uma solução completa para compatibilidade com versões anteriores.
A solução a seguir, usando JavaScript puro, funciona em todos os navegadores e é padrão há muito tempo, portanto você não precisa de bibliotecas para suporte a vários navegadores.
Esta página será redirecionada para o Google após 3000 milissegundos
As opções diferentes são as seguintes:
Ao usar substituir, o botão Voltar não retornará à página de redirecionamento, como se nunca estivesse no histórico. Se você deseja que o usuário possa voltar à página de redirecionamento, use
window.location.href
ouwindow.location.assign
. Se você usar uma opção que permita ao usuário voltar à página de redirecionamento, lembre-se de que quando você entra na página de redirecionamento, ele o redireciona de volta. Portanto, leve isso em consideração ao escolher uma opção para o seu redirecionamento. Sob condições em que a página está redirecionando apenas quando uma ação é executada pelo usuário, manter a página no histórico do botão voltar ficará bem. Mas se a página redirecionar automaticamente, você deverá usar a opção substituir, para que o usuário possa usar o botão Voltar sem ser forçado a voltar à página que o redirecionamento envia.Você também pode usar metadados para executar um redirecionamento de página, conforme a seguir.
META Refresh
META Localização
BASE Hijacking
Muitos outros métodos para redirecionar seu cliente desavisado para uma página que ele pode não querer ir podem ser encontrados nesta página (nenhum deles depende do jQuery):
Eu também gostaria de salientar que as pessoas não gostam de ser redirecionadas aleatoriamente. Somente redirecione as pessoas quando for absolutamente necessário. Se você começar a redirecionar as pessoas aleatoriamente, elas nunca voltarão ao seu site.
O próximo parágrafo é hipotético:
Você também pode ser denunciado como um site malicioso. Se isso acontecer, quando as pessoas clicarem em um link para o seu site, o navegador dos usuários poderá avisá-las de que seu site é malicioso. O que também pode acontecer é que os mecanismos de pesquisa podem começar a diminuir sua classificação se as pessoas estiverem relatando uma experiência ruim em seu site.
Consulte as Diretrizes para webmasters do Google sobre redirecionamentos: https://support.google.com/webmasters/answer/2721217?hl=pt_BR&ref_topic=6001971
Aqui está uma pequena página divertida que o expulsa da página.
Se você combinar os exemplos de duas páginas, terá um loop infantil de redirecionamento que garantirá que seu usuário nunca mais queira usar seu site novamente.
fonte
fonte
Você pode fazer isso sem o jQuery como:
E se você quiser apenas jQuery, poderá fazê-lo como:
fonte
Isso funciona com o jQuery:
fonte
window.location
# Redirecionamento de página HTML usando jQuery / JavaScript
Experimente este código de exemplo:
Se você deseja fornecer um URL completo como
window.location = "www.google.co.in";
.fonte
Você precisa colocar esta linha no seu código:
Se você não possui jQuery, vá com JavaScript:
fonte
Pergunta original: "Como redirecionar usando jQuery?", Portanto, a resposta implementa jQuery >> Caso de uso gratuito.
Para apenas redirecionar para uma página com JavaScript:
Ou se você precisar de um atraso:
O jQuery permite selecionar elementos de uma página da web com facilidade. Você pode encontrar o que quiser em uma página e, em seguida, usar o jQuery para adicionar efeitos especiais, reagir às ações do usuário ou mostrar e ocultar conteúdo dentro ou fora do elemento que você selecionou. Todas essas tarefas começam com o conhecimento de como selecionar um elemento ou evento .
Imagine que alguém escreveu um script / plugin com 10000 linhas de código. Com o jQuery, você pode se conectar a esse código com apenas uma linha ou duas.
fonte
Então, a questão é como fazer uma página de redirecionamento, e não como redirecionar para um site?
Você só precisa usar JavaScript para isso. Aqui está um pequeno código que criará uma página de redirecionamento dinâmico.
Digamos que você coloque esse trecho em um
redirect/index.html
arquivo no seu site, você pode usá-lo dessa maneira.E se você acessar esse link, ele o redirecionará automaticamente para o stackoverflow.com .
E é assim que você cria uma página de redirecionamento simples com JavaScript
Editar:
Há também uma coisa a observar. Eu adicionei
window.location.replace
no meu código porque acho que combina com uma página de redirecionamento, mas você deve saber que ao usarwindow.location.replace
e é redirecionado, ao pressionar o botão Voltar no navegador, ele não funcionará. voltará à página de redirecionamento e volte para a página anterior e dê uma olhada nesta pequena demonstração.Exemplo:
Portanto, se isso atender às suas necessidades, tudo ficará bem. Se você deseja incluir a página de redirecionamento no histórico do navegador, substitua-o
com
fonte
Na sua função de clique, basta adicionar:
fonte
Tente o seguinte:
Fragmento de código do exemplo .
fonte
jQuery não é necessário. Você consegue fazer isso:
É fácil assim!
A melhor maneira de iniciar uma solicitação HTTP é com
document.loacation.href.replace('URL')
.fonte
Primeiro escreva corretamente. Você deseja navegar em um aplicativo para outro link do seu aplicativo para outro link. Aqui está o código:
E se você quiser navegar pelas páginas do seu aplicativo, também tenho código, se desejar.
fonte
Você pode redirecionar no jQuery assim:
fonte
Em JavaScript e jQuery, podemos usar o seguinte código para redirecionar uma página para outra página:
fonte
ECMAScript 6 + jQuery, 85 bytes
Por favor, não me mate, isso é uma piada. É uma piada. Isso é uma piada.
Isso "forneceu uma resposta para a pergunta", no sentido de solicitar uma solução "usando jQuery", que neste caso implica forçá-la de alguma forma à equação.
Aparentemente, Ferrybig precisa da piada explicada (ainda brincando, tenho certeza que há opções limitadas no formulário de revisão), portanto, sem mais delongas:
Outras respostas estão usando jQuery's
attr()
nos objetoslocation
ouwindow
desnecessariamente.Essa resposta também a abusa, mas de uma maneira mais ridícula. Em vez de usá-lo para definir o local, isso é usado
attr()
para recuperar uma função que define o local.A função é nomeada
jQueryCode
mesmo que não exista nada jQuery, e chamar uma funçãosomethingCode
é simplesmente horrível, especialmente quando algo não é sequer um idioma.Os "85 bytes" são uma referência ao Code Golf. Obviamente, o golfe não é algo que você deve fazer fora do código de golfe e, além disso, essa resposta claramente não é realmente um jogo de golfe.
Basicamente, encolher.
fonte
Javascript:
Jquery:
fonte
Usando JavaScript:
Método 1:
Método 2:
Usando jQuery:
Método 1: $ (local)
Método 2: Função Reutilizável
fonte
Aqui está um redirecionamento de atraso de tempo. Você pode definir o tempo de atraso para o que quiser:
fonte
Existem três maneiras principais de fazer isso,
e...
O último é o melhor, para um redirecionamento tradicional, porque ele não salva a página para a qual você foi antes de ser redirecionado no seu histórico de pesquisa. No entanto, se você quiser apenas abrir uma guia com JavaScript, poderá usar qualquer uma das opções acima. 1
EDIT: O
window
prefixo é opcional.fonte