Tudo que eu quero é obter o URL do site. Não é o URL retirado de um link. No carregamento da página eu preciso ser capaz de pegar o URL completo e atual do site e defini-lo como uma variável para fazer o que eu quiser.
Usar:
window.location.href
Como observado nos comentários, a linha abaixo funciona, mas está com problemas para o Firefox.
document.URL;
Acesso a informações de URL
O JavaScript oferece vários métodos para recuperar e alterar o URL atual, 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 Location
que tenha o URL atual da seguinte forma:
var currentLocation = window.location;
Estrutura de URL básica
<protocol>//<hostname>:<port>/<pathname><search><hash>
protocol: Especifica o nome do protocolo a ser usado para acessar o recurso na Internet. (HTTP (sem SSL) ou HTTPS (com SSL))
hostname: Host name especifica o host que possui o recurso. Por exemplo, www.stackoverflow.com
. Um servidor fornece serviços usando o nome do host.
port: Um número de porta usado para reconhecer um processo específico para o qual uma mensagem da Internet ou de outra rede deve ser encaminhada quando chega a um servidor.
pathname: O caminho fornece informações sobre o recurso específico dentro do Host que o Web client deseja acessar. Por exemplo, /index.html
.
query: Uma string de consulta segue o componente path 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 da âncora de um URL, inclui o sinal de hash (#).
Com essas propriedades de objeto Location
, você pode acessar todos esses componentes de URL e o que eles podem definir ou retornar:
Eu espero que você tenha sua resposta.
Use window.location
para acesso de leitura e gravação ao objeto location associado ao quadro atual. Se você quiser apenas obter o endereço como uma string de somente leitura, você pode usar document.URL
, que deve conter o mesmo valor que window.location.href
.
Obtém o URL da página atual:
window.location.href
Para obter o caminho, você pode usar:
console.log('document.location', document.location.href);
console.log('location.pathname', window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL
Use: window.location.href
.
Como mencionado acima, document.URL
não atualiza ao atualizar window.location
. Veja MDN .
OK, obter o URL completo da página atual é fácil usando JavaScript puro. Por exemplo, tente este código nesta página:
window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"
A propriedade window.location.href retorna o URL da página atual.
document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<h3>The window.location.href</h3>
<p id="root"></p>
</body>
</html>
Apenas não é ruim mencionar isso também:
Além disso, se você precisar de um caminho relativo, simplesmente use window.location.pathname
;
E se você quiser obter o nome do host, use window.location.hostname
;
E se você precisar obter o protocolo separadamente, basta fazer window.location.protocol
Além disso, se a página tiver a tag hash
, você poderá obtê-la como: window.location.hash
Então window.locatation.href
lida com tudo de uma vez ... basicamente:
window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
//true
Também usando window
não é necessário se já estiver no escopo da janela ...
Então, nesse caso, você pode usar:
location.protocol
location.hostname
location.pathname
location.hash
location.href
window.location.href
para obter o URL completo.window.location.pathname
para obter URL deixando o host.Você pode obter o local da URL atual com uma hash tag usando:
JavaScript:
// Using href
var URL = window.location.href;
// Using path
var URL = window.location.pathname;
jQuery :
$(location).attr('href');
var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
currentPageUrlIs = this.href.toString().toLowerCase();
}else{
currentPageUrlIs = document.location.toString().toLowerCase();
}
O código acima também pode ajudar alguém
Adicionando resultado para referência rápida
window.location;
Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
Origin: "https://stackoverflow.com",
replace: ƒ, assign: ƒ, …}
document.location
Location {href: "https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
Origin: "https://stackoverflow.com",
replace: ƒ, assign: ƒ
, …}
window.location.pathname
"/questions/1034621/get-the-current-url-with-javascript"
window.location.href
"https://stackoverflow.com/questions/1034621/get-the-current-url-with-javascript"
location.hostname
"stackoverflow.com"
Para URL completo com strings de consulta:
document.location.toString().toLowerCase();
Para o URL do host:
window.location
A maneira de obter o objeto de localização atual é window.location
.
Compare isso com document.location
, que originalmente retornava apenas o URL atual como uma string. Provavelmente para evitar confusão, document.location
foi substituído por document.URL
.
E todos os navegadores modernos mapeiam document.location
para window.location
.
Na realidade, para a segurança entre navegadores, você deve usar window.location
em vez de document.location
.
No jstl, podemos acessar o caminho da URL atual usando pageContext.request.contextPath
. Se você quiser fazer uma chamada Ajax, use o seguinte URL.
url = "${pageContext.request.contextPath}" + "/controller/path"
Exemplo: Para a página http://stackoverflow.com/posts/36577223
, isso dará http://stackoverflow.com/controller/path
.
location.Origin+location.pathname+location.search+location.hash;
se você está se referindo a um link específico que tem um id este código pode ajudá-lo.
$(".disapprove").click(function(){
var id = $(this).attr("id");
$.ajax({
url: "<?php echo base_url('index.php/sample/page/"+id+"')?>",
type: "post",
success:function()
{
alert("The Request has been Disapproved");
window.location.replace("http://localhost/sample/page/"+id+"");
}
});
});
Eu estou usando ajax aqui para enviar um id e redirecionar a página usando window.location.replace . basta adicionar um atributo id=""
conforme indicado.
Obtendo o URL atual com JavaScript:
window.location.toString ();
window.location.href
Você pode obter o link completo da página atual através de location.href
e para obter o link do controlador atual, use:
location.href.substring(0, location.href.lastIndexOf('/'));