Resumo : neste tutorial, você aprenderá como usar JavaScript para redirecionar para uma nova URL ou página.
Introdução ao redirecionamento JavaScript
Às vezes, você deseja redirecionar os usuários de uma página para outra que tenha um URL diferente.
Por exemplo, você pode criar uma landing page de aplicativo que redirecione puramente os usuários para o Google Play ou Apple Store, dependendo do sistema operacional de seus smartphones.
Para fazer isso, você precisa:
- Detecte o sistema operacional dos smartphones
- Redirecione para a Apple Store se o sistema operacional for iOS e para o Google Play se o sistema operacional for Android.
O redirecionamento pode ser feito nos navegadores web usando a API de redirecionamento JavaScript.
É importante observar que o redirecionamento de JavaScript é executado inteiramente em navegadores da web. Portanto ele não retorna o código de status 301 (mover permanentemente) como um redirecionamento de servidor.
Portanto, se você mover o site para um domínio separado ou criar uma nova URL para uma página antiga, deverá sempre usar o redirecionamento de servidor.
Redirecionar para um novo URL
Para redirecionar navegadores da web para um novo URL da página atual para uma nova, você usa o location
objeto:
location.href = 'new_url';
Linguagem de código: JavaScript ( javascript )
Por exemplo:
location.href = 'https://tutorials.acervolima.com/tutorial-de-javascript';
Linguagem de código: JavaScript ( javascript )
Atribuir um valor à href
propriedade do location
objeto tem o mesmo efeito que chamar o assign()
método do location
objeto:
location.assign('https://tutorials.acervolima.com/tutorial-de-javascript');
Linguagem de código: JavaScript ( javascript )
Qualquer uma dessas chamadas redirecionará para o novo URL e criará uma entrada na pilha de histórico do navegador. Isso significa que você pode voltar à página anterior através do botão Voltar do navegador.
Para redirecionar para uma nova URL sem criar uma nova entrada na pilha de histórico do navegador, você usa o replace()
método do location
objeto:
location.replace('https://tutorials.acervolima.com/tutorial-de-javascript');
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir cria uma página que redireciona os navegadores da web para o Google Play ou Apple Store se o sistema operacional for Android ou iOS. Caso contrário, aparecerá uma mensagem indicando que o sistema operacional não é compatível:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript Redirect</title>
</head>
<body>
<div class="message"></div>
<script src="js/app.js"></script>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
js/app.js
const apps = {
Android: 'https://play.google.com/',
iOS: 'https://www.apple.com/store',
};
const platform = () => {
let userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/windows phone/i.test(userAgent)) return 'Windows Phone';
if (/android/i.test(userAgent)) return 'Android';
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) return 'iOS';
return null;
};
const redirect = () => {
let os = platform();
if (os in apps) {
location.replace(apps[os]);
} else {
const message = document.querySelector('.message');
message.innerText = 'Your OS is not supported';
}
};
redirect();
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, defina um apps
objeto com as chaves sendo SO e os valores sendo URLs do Google Play e Apple Store:
const apps = {
Android: 'https://play.google.com/',
iOS: 'https://www.apple.com/store',
};
Linguagem de código: JavaScript ( javascript )
Segundo, defina uma função que detecte o sistema operacional:
const platform = () => {
let userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/windows phone/i.test(userAgent)) return 'Windows Phone';
if (/android/i.test(userAgent)) return 'Android';
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) return 'iOS';
return null;
};
Linguagem de código: JavaScript ( javascript )
Terceiro, crie a redirect()
função que detecta o sistema operacional e redireciona o navegador da web com base no sistema operacional detectado:
const redirect = () => {
let os = platform();
if (os in apps) {
location.replace(apps[os]);
} else {
const message = document.querySelector('.message');
message.innerText = 'Your OS is not supported';
}
};
Linguagem de código: JavaScript ( javascript )
Finalmente, chame a redirect()
função:
redirect();
Redirecionar para um URL relativo
O script a seguir redireciona para o about.html
que está no mesmo nível da página atual.
location.href = 'about.html';
Linguagem de código: JavaScript ( javascript )
O script a seguir redireciona para a contact.html
página localizada na root
pasta:
location.href = '/contact.html';
Linguagem de código: JavaScript ( javascript )
Redirecionar ao carregar a página
Se quiser redirecionar para uma nova página ao carregar, use o seguinte código:
window.onload = function() {
location.href = "https://tutorials.acervolima.com/tutorial-de-javascript";
}
Linguagem de código: JavaScript ( javascript )
Resumo
- Para redirecionar para um novo URL ou página, atribua o novo URL à
location.href
propriedade ou use olocation.assign()
método. - O
location.replace()
método redireciona para um novo URL, mas não cria uma entrada na pilha de histórico do navegador.