Objeto location - JavaScript
O objeto location contém informações sobre a localização da página web atual: URL, informações do servidor, número da porta e protocolo. Com as propriedades deste objeto, podemos obter essas informações:
: endereço completo da URL da página web.href
: esquema geral da solicitação.origin
: protocolo (incluindo dois pontos), por exemplo,protocol
: ouhttp
:.https
: host, por exemplo,host
. Se o endereço URL contiver o número da porta, a porta também estará incluída no host, por exemplo,localhost.com
.localhost.com:8080
: domínio, similar ao host, mas sem incluir a porta, por exemplo,hostname
.localhost.com
: porta usada pelo recurso.port
: caminho para o recurso, parte do endereço que vem após o host, após a barrapathname
./
: identificador de fragmento, parte do endereço que vem após o símbolo de hashtaghash
(se presente).#
: string de consulta(parâmetros), parte do endereço que vem após o ponto de interrogaçãosearch
(se presente).?
: nome de usuário especificado no endereço. Por exemplo, no endereço https://tom:qwerty5@localhost.com, é a substring "tom".username
: senha especificada no endereço. Por exemplo, no endereço https://tom:qwerty5@localhost.com, é a substring "qwerty5".password
Em geral, o formato do endereço URL é o seguinte:
protocol//username:password@hostname:port/path?search#hash
Por exemplo, considere a seguinte página web test
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Proramício</title>
</head>
<body>
<script>
console.log("href:", location.href);
console.log("path:", location.pathname);
console.log("origin:", location.origin);
console.log("protocol:", location.protocol);
console.log("port:", location.port);
console.log("host:", location.host);
console.log("hostname:", location.hostname);
console.log("hash:", location.hash);
console.log("search:", location.search);
</script>
</body>
</html>
Se ela estiver em um servidor web local e acessada pelo endereço http://localhost:4200/test?name=tom&age=39#userinfo, a saída será:
Controlando o Endereço
O objeto location
: carrega o recurso localizado no caminhoassign(url)
.url
: recarrega a página web atual. O parâmetro forcedReload indica se deve usar o cache do navegador. Se o parâmetro forreload(forcedReload)
, o cache não é usado.true
: substitui a página web atual por outro recurso localizado no caminhoreplace(url)
. Diferentemente do métodourl
, que também carrega a página web de outro recurso, o métodoassign
não salva a página web anterior no histórico de navegação, portanto, não será possível usar o métodoreplace
para retornar a ela.history.back()
Para redirecionar para outro recurso, podemos usar tanto as propriedades quanto os métodos do objeto location:
location = "http://google.com";
// ou
location.href = "http://google.com";
location.assign("http://google.com");
Para redirecionar para outro recurso local:
location.replace("index.html");
Por exemplo, vamos redirecionar a página ao clicar em um botão:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Programício</title>
</head>
<body>
<input type="url" id="url" />
<button id="btn">Click</button>
<script>
const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
const url = document.getElementById("url").value;
location.assign(url);
});
</script>
</body>
</html>
Aqui, ao clicar no botão, ocorre a navegação para o endereço inserido no campo de texto url
O redirecionamento usando o método replace()
const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
const url = document.getElementById("url").value;
location.replace(url);
});
Para recarregar a página:
const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
location.reload(true);
});