Como redirecionar para outra página da web?

Como redirecionar um usuário de uma página para outra usando jQuery ou javascript puro?

7735
02 февр. ajustado por venkatachalam 02 fevereiro 2009-02-02 15:54 '09 às 15:54 2009-02-02 15:54
@ 80 respostas
  • 1
  • 2
  • 3

Um não apenas redireciona usando jQuery

jQuery não é necessário, e window.location.replace(...) melhor redirecionamento HTTP simulado.

window.location.replace(...) melhor que usar window.location.href , porque replace() não salva a página original no histórico da sessão, ou seja, o usuário não fica preso no fiasco interminável do botão voltar.

Se você quiser imitar alguém clicando no link, use location.href

Se você quiser simular o redirecionamento HTTP, use location.replace

Por exemplo:

 // similar behavior as an HTTP redirect window.location.replace("http://stackoverflow.com"); // similar behavior as clicking on a link window.location.href = "http://stackoverflow.com"; 
13553
03 февр. a resposta é dada por Ryan McGeary 03 de fevereiro 2009-02-03 07:24 '09 at 7:24 am 2009-02-03 07:24

AVISO: Esta resposta foi simplesmente fornecida como uma solução possível; esta obviamente não é a melhor solução, já que o jQuery é necessário para isso. Em vez disso, prefira uma solução limpa de javascript.

border=0
1540
28 окт. Resposta dada por Boris Guéry 28 de outubro 2009-10-28 19:35 '09 às 19:35 2009-10-28 19:35

Método de redirecionamento de página de javascript padrão "vanilla":

window.location.href = 'newPage.html';


Se você está aqui porque perde HTTP_REFERER ao redirecionar, continue lendo:


A seção a seguir é destinada àqueles que usam HTTP_REFERER como uma das muitas medidas seguras (embora essa não seja uma ótima medida de proteção). Se você usar o Internet Explorer 8 ou inferior, essas variáveis ​​serão perdidas ao usar qualquer forma de redirecionamento da página JavaScript (location.href, etc.).

Abaixo, vamos implementar uma alternativa para o IE8 e abaixo, para que não percamos HTTP_REFERER. Caso contrário, você quase sempre pode simplesmente usar window.location.href .

Testar sobre HTTP_REFERER (inserção de URL, sessão, etc.) pode ser útil para determinar se uma solicitação é legítima. ( Observação: também há maneiras de ignorar / trapacear esses referenciadores, conforme observado na descrição de links com um erro)


Uma solução simples para testes entre navegadores (reverter para window.location.href para o Internet Explorer 9+ e todos os outros navegadores)

Uso: redirect('anotherpage.aspx');

 function redirect (url) { var ua = navigator.userAgent.toLowerCase(), isIE = ua.indexOf('msie') !== -1, version = parseInt(ua.substr(4, 2), 10); // Internet Explorer 8 and lower if (isIE  version < 9) { var link = document.createElement('a'); link.href = url; document.body.appendChild(link); link.click(); } // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8  lower does) else { window.location.href = url; } } 
556
27 июля '12 в 17:41 2012-07-27 17:41 a resposta é dada por Mark Pieszak - DevHelp.Online julho 27 '12 em 17:41 2012-07-27 17:41

Existem muitas maneiras de fazer isso.

 // window.location window.location.replace('http://www.example.com') window.location.assign('http://www.example.com') window.location.href = 'http://www.example.com' document.location.href = '/path' // window.history window.history.back() window.history.go(-1) // window.navigate; ONLY for old versions of Internet Explorer window.navigate('top.jsp') // Probably no bueno self.location = 'http://www.example.com'; top.location = 'http://www.example.com'; // jQuery $(location).attr('href','http://www.example.com') $(window).attr('location','http://www.example.com') $(location).prop('href', 'http://www.example.com') 
369
28 янв. Govind Singh respondeu 28 de janeiro 2014-01-28 07:28 '14 às 7:28 2014-01-28 07:28

Funciona para todos os navegadores:

 window.location.href = 'your_url'; 
292
23 окт. resposta dada a Fred em 23 de outubro. 2010-10-23 02:45 '10 às 2:45 am 2010-10-23 02:45

Ajudaria se você fosse um pouco mais visual sobre o que você está tentando fazer. Se você está tentando gerar dados paginados, há algumas opções em como você faz isso. Você pode criar links separados para cada página com a qual deseja vincular diretamente.

 <a href='/path-to-page?page=1' class='pager-link'>1</a> <a href='/path-to-page?page=2' class='pager-link'>2</a> <span class='pager-link current-page'>3</a> ... 

Observe que a página atual no exemplo é tratada de maneira diferente no código e com CSS.

Se você quiser que os dados da página sejam modificados usando o AJAX, o jQuery estará envolvido aqui. O que você faria é adicionar um manipulador de cliques para cada uma das tags de âncora que correspondem à outra página. Este manipulador irá chamar algum código jQuery que é enviado e exibe a próxima página via AJAX e atualiza a tabela com novos dados. No exemplo abaixo, supõe-se que você tenha um serviço da Web que retorne novos dados da página.

 $(document).ready( function() { $('a.pager-link').click( function() { var page = $(this).attr('href').split(/\?/)[1]; $.ajax({ type: 'POST', url: '/path-to-service', data: page, success: function(content) { $('#myTable').html(content); // replace } }); return false; // to stop link }); }); 
273
02 февр. A resposta é dada por tvanfosson 02 fev. 2009-02-02 16:18 '09 at 16:18 2009-02-02 16:18

Eu também acho que location.replace(URL) é a melhor maneira, mas se você quiser notificar os motores de busca do seu redirecionamento (eles não analisam o código JavaScript para ver o redirecionamento), você deve adicionar uma meta tag rel="canonical" ao seu site.

Adicionando uma seção noscript com meta tags de atualização HTML também é uma boa solução. Eu sugiro que você use esta ferramenta de redirecionamento de javascript para criar redirecionamentos. Ele também tem suporte do Internet Explorer para enviar um referenciador HTTP.

O código de exemplo sem demora se parece com isto:

 <!-- Place this snippet right after opening the head tag to make it work properly --> <!-- This code is licensed under GNU GPL v3 --> <!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited --> <!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ --> <!-- REDIRECTING STARTS --> <link rel="canonical" href="https://yourdomain.com/"/> <noscript> <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/"> </noscript> <!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]--> <script type="text/javascript"> var url = "https://yourdomain.com/"; if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer { document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix. var referLink = document.createElement("a"); referLink.href = url; document.body.appendChild(referLink); referLink.click(); } else { window.location.replace(url); } // All other browsers </script> <!-- Credit goes to http://insider.zone/ --> <!-- REDIRECTING ENDS --> 
232
25 апр. a resposta é dada por Patartics Milán em 25 de abr 2013-04-25 13:12 '13 às 13:12 2013-04-25 13:12

Mas se alguém quiser redirecionar para a página inicial, ele poderá usar o seguinte snippet.

 window.location = window.location.host 

Seria útil se você tivesse três ambientes diferentes: desenvolvimento, produção e produção.

Você pode examinar essa janela ou o objeto window.location simplesmente colocando essas palavras no console do Chrome ou do Firebug .

206
30 окт. A resposta é dada por Nadeem Yasin em 30 de outubro. 2012-10-30 15:15 '12 às 15:15 2012-10-30 15:15

O JavaScript oferece vários métodos para extrair e modificar o URL atual exibido na barra de endereços do seu navegador. Todos esses métodos usam o objeto Location, que é uma propriedade do objeto Window. Você pode criar um novo objeto Location com o URL atual da seguinte maneira.

 var currentLocation = window.location; 

Estrutura básica de URL

 <protocol>//<hostname>:<port>/<pathname><search><hash> 

2019

195
23 дек. Nikhil Agrawal respondeu 23 de dezembro 2013-12-23 16:35 '13 às 16:35 2013-12-23 16:35

Deve apenas ser configurado usando window.location .

Exemplo:

 window.location = "https://stackoverflow.com/"; 

Aqui está o artigo anterior sobre este tópico:

Como redirecionar para outra página da web?

182
16 февр. A resposta é dada Newse 16 fev. 2014-02-16 17:42 '14 às 17:42 2014-02-16 17:42

Na verdade, jQuery é apenas uma infra-estrutura JavaScript, e para realizar certas coisas, como o redirecionamento , neste caso, você pode simplesmente usar JavaScript puro, então neste caso você tem 3 opções para usar o JavaScript:

1) Determinar um local usando uma troca, isso substitui o histórico da página atual, significa que você não pode usar o botão voltar para retornar à página original.

 window.location.replace("http://stackoverflow.com"); 

2) Usando o local de destino , ele salvará o histórico para você e, usando o botão voltar, você poderá retornar à página original:

 window.location.assign("http://stackoverflow.com"); 

3) Eu recomendo usar um desses métodos anteriores, mas pode ser a terceira opção usando javascript puro:

 window.location.href="http://stackoverflow.com"; 

Você também pode escrever uma função no jQuery para processá-la, mas isso não é recomendado porque é apenas uma linha da função JavaScript, você também pode usar todas as funções listadas acima sem uma janela se já estiver no escopo da janela, por exemplo window.location.replace("http://stackoverflow.com"); pode ser location.replace("http://stackoverflow.com");

Eu também mostro todos eles na imagem abaixo:

2019

26 февр. Responder Alireza 26 fev 2017-02-26 16:36 '17 às 16:36 2017-02-26 16:36

Antes de começar, o jQuery é uma biblioteca JavaScript usada para manipular o DOM. Portanto, você não deve usar o jQuery para redirecionar a página.

Citação de jquery.com:

Embora o jQuery possa funcionar sem problemas sérios em versões mais antigas do navegador, nós não testamos ativamente o jQuery e geralmente não corrigimos erros que possam aparecer neles.

Foi encontrado aqui: https://jquery.com/browser-support/

Assim, o jQuery não é uma solução completa para compatibilidade com versões anteriores.

A solução a seguir, que usa JavaScript bruto, funciona em todos os navegadores e é padrão por um longo tempo, portanto, você não precisa de bibliotecas para oferecer suporte a vários navegadores.

Esta página será redirecionada para o Google após 3000 milissegundos.

 <!DOCTYPE html> <html> <head> <title>example</title> </head> <body> <p>You will be redirected to google shortly.</p> <script> setTimeout(function(){ window.location.href="http://www.google.com"; // The URL that will be redirected too. }, 3000); // The bigger the number the longer the delay. </script> </body> </html> 

As seguintes opções são possíveis:

 window.location.href="url"; // Simulates normal navigation to a new page window.location.replace("url"); // Removes current URL from history and replaces it with a new URL window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL window.history.back(); // Simulates a back button click window.history.go(-1); // Simulates a back button click window.history.back(-1); // Simulates a back button click window.navigate("page.html"); // Same as window.location="url" 

Ao substituir, o botão Voltar não retornará para a página de redirecionamento, como se nunca tivesse passado no histórico. Se você quiser que o usuário retorne à página de redirecionamento, use window.location.href ou window.location.assign . Se você usar a opção que permite que o usuário retorne à página de redirecionamento, lembre-se de que, quando você digita a página de redirecionamento, ela o redireciona de volta. Portanto, considere isso ao escolher uma opção de redirecionamento. Em condições em que a página é redirecionada apenas quando a ação é executada pelo usuário, a presença da página no histórico dos botões Voltar ficará bem. Mas se a página for automaticamente redirecionada, você deve usar uma substituição para que o usuário possa usar o botão de voltar sem receber um retorno forçado para a página enviada por redirecionamento.

Você também pode usar metadados para iniciar o redirecionamento da página, conforme mostrado abaixo.

Atualização META

 <meta http-equiv="refresh" content="0;url=http://evil.com/" /> 

Localização META

 <meta http-equiv="location" content="URL=http://evil.com" /> 

BASE Hijacking

 <base href="http://evil.com/" /> 

Nesta página você pode encontrar muitas outras maneiras de redirecionar seu cliente desavisado para uma página que eles podem não querer, mas nenhum deles depende do jQuery:

https://code.google.com/p/html5security/wiki/RedirectionMethods

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 em uma ordem aleatória, elas nunca mais entrarão em seu site.

A próxima parte é hipotética:

Você também pode receber uma mensagem como um site mal-intencionado. Se isso acontecer, quando as pessoas clicarem no link para o seu site, o navegador do usuário poderá avisá-lo que seu site é malicioso. Também pode acontecer que os mecanismos de pesquisa comecem a degradar se as pessoas relatarem experiências ruins em seu site.

Confira as diretrizes para redirecionamento do Google para webmasters: https://support.google.com/webmasters/answer/2721217?hl=pt-BR>

Aqui está uma pequena página divertida que tira você da página.

 <!DOCTYPE html> <html> <head> <title>Go Away</title> </head> <body> <h1>Go Away</h1> <script> setTimeout(function(){ window.history.back(); }, 3000); </script> </body> </html> 

Se você combinar as duas páginas de amostra juntas, você terá um loop de recém-nascido que garante que seu usuário nunca mais deseje usar seu site novamente.

28 авг. Resposta dada por Patrick W. McMahon em 28 de agosto 2014-08-28 00:50 '14 às 0:50 2014-08-28 00:50
 var url = 'asdf.html'; window.location.href = url; 
151
13 окт. a resposta é dada por user188973 em 13 de outubro 2009-10-13 12:36 '09 às 12:36 2009-10-13 12:36

Você pode fazer isso sem jQuery como:

 window.location = "http://yourdomain.com"; 

E se você quer apenas o jQuery, então você pode fazer como:

 $jq(window).attr("location","http://yourdomain.com"); 
135
23 мая '12 в 16:03 2012-05-23 16:03 a resposta é dada ScoRpion 23 de maio de '12 at 4:03 pm 2012-05-23 16:03

Isso funciona com jQuery:

 $(window).attr("location", "http://google.fr"); 
133
05 сент. A resposta é dada xloadx 05 set. 2011-09-05 20:25 '11 às 20:25 2011-09-05 20:25

# Encaminhando uma página HTML usando jQuery / JavaScript

Tente este código de exemplo:

 function YourJavaScriptFunction() { var i = $('#login').val(); if (i == 'login') window.location = "login.php"; else window.location = "Logout.php"; } 

Se você quiser especificar o URL completo como window.location = "www.google.co.in"; .

82
06 февр. a resposta é dada por Sakthi Karthik 06 de fevereiro 2014-02-06 13:28 '14 às 13:28 2014-02-06 13:28

Então a questão é como redirecionar a página, não como redirecionar para o site?

Para fazer isso, você precisa usar o javascript. Aqui está um pequeno código que irá criar uma página de redirecionamento dinâmico.

 <script> var url = window.location.search.split('url=')[1]; // Get the URL after ?url= if( url ) window.location.replace(url); </script> 

Então me diga que você acabou de colocar este trecho no arquivo redirect/index.html em seu site, você pode usá-lo assim.

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

E se você seguir este link, ele será redirecionado automaticamente para stackoverflow.com .

Link de documentação

E como você cria uma página de redirecionamento simples com javascript

Editar:

Há também um comentário. Eu adicionei window.location.replace ao meu código, porque acho que ele se encaixa na página de redirecionamento, mas você precisa saber disso quando usar o window.location.replace e for redirecionado quando clicar no botão voltar no seu navegador , ela não voltará para a página de redirecionamento, e ela voltará para a página na frente dela, dê uma olhada nesta pequena demonstração.

Exemplo:

Processo: manter em casa => redirecionar a página para o google => google

Quando no google: google => botão voltar no navegador => salvar em casa

Então, se isso se encaixa às suas necessidades, então tudo deve ficar bem. Se você quiser incluir a página de redirecionamento no histórico do navegador, substitua-a.

 if( url ) window.location.replace(url); 

com

 if( url ) window.location.href = url; 
74
31 авг. Resposta dada por iConnor em 31 ago 2013-08-31 02:46 '13 às 2:46 2013-08-31 02:46

Você deve colocar esta linha no seu código:

 $(location).attr("href","http://stackoverflow.com"); 

Se você não tiver o jQuery, vá para JavaScript usando:

 window.location.replace("http://stackoverflow.com"); window.location.href("http://stackoverflow.com"); 
74
27 янв. Responder Ashish Ratan 27 jan 2014-01-27 13:11 '14 às 13:11 2014-01-27 13:11

Na sua função de clique, basta adicionar:

 window.location.href = "The URL where you want to redirect"; $('#id').click(function(){ window.location.href = "http://www.google.com"; }); 
69
14 нояб. Resposta dada por Swaprks em 14 de novembro. 2012-11-14 05:17 '12 às 5:17 2012-11-14 05:17

***** A PERGUNTA ORIGINAL FOI - "COMO REVER A UTILIZAÇÃO DA JQUERY", HENCE, A RESPOSTA IMPLEMENTA AQUISIÇÃO >> EXERCÍCIO LIVRE *****

Apenas redirecione para a página usando javascript:

  window.location.href = "/contact/"; 

Ou se você precisar de um atraso:

 setTimeout(function () { window.location.href = "/contact/"; }, 2000); // Time in milliseconds 

O jQuery permite que você selecione facilmente elementos de uma página da web. Você pode encontrar tudo o que deseja na página e usar o jQuery para adicionar efeitos especiais, responder a ações do usuário ou exibir e ocultar conteúdo dentro ou fora do elemento escolhido. Todas essas tarefas começam com o conhecimento de como selecionar um elemento ou evento .

  $('a,img').on('click',function(e){ e.preventDefault(); $(this).animate({ opacity: 0 //Put some CSS animation here }, 500); setTimeout(function(){ // OK, finished jQuery staff, let go redirect window.location.href = "/contact/"; },500); }); 

Imagine alguém escreveu um script / plugin que contém 10.000 linhas de código? Bem, com jQuery, você pode se conectar a esse código com apenas uma linha ou duas.

66
26 дек. a resposta é dada SergeDirect 26 dez. 2014-12-26 22:08 '14 às 22:08 2014-12-26 22:08

Tente o seguinte:

 location.assign("http://www.google.com"); 

exemplo de fragmento de código .

57
19 нояб. Responder tilak 19 nov. 2013-11-19 07:01 '13 às 7:01 am 2013-11-19 07:01

jQuery não é necessário. Você pode fazer isso:

 window.open("URL","_self","","") 

É assim tão fácil!

A melhor maneira de iniciar uma solicitação HTTP é document.loacation.href.replace('URL') .

53
11 июля '13 в 20:40 2013-07-11 20:40 a resposta é dada por MayorMonty 11 de julho de '13 at 8:40 pm 2013-07-11 20:40

Primeiro escreva corretamente. Você quer navegar dentro do aplicativo por outro link do seu aplicativo para outro link. Aqui está o código:

 window.location.href = "http://www.google.com"; 

E se você quiser navegar pelas páginas em seu aplicativo, também tenho código, se quiser.

50
06 июня '13 в 15:37 2013-06-06 15:37 a resposta é dada por Anup em 06 junho '13 at 15:37 2013-06-06 15:37

Você pode redirecionar para jQuery da seguinte maneira:

 $(location).attr('href', 'http://yourPage.com/'); 
50
ответ дан Azam Alvi 05 сент. '14 в 19:36 2014-09-05 19:36

ECMAScript 6 + jQuery, 85 байт

 $({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")