Estou usando jQuery. Como obtenho o caminho do URL atual e o atribuo a uma variável?
URL de exemplo:
http://localhost/menuname.de?foo=bar&number=0
Estou usando jQuery. Como obtenho o caminho do URL atual e o atribuo a uma variável?
URL de exemplo:
http://localhost/menuname.de?foo=bar&number=0
Respostas:
Para obter o caminho, você pode usar:
var pathname = window.location.pathname; // Returns path only (/path/example.html)
var url = window.location.href; // Returns full URL (https://example.com/path/example.html)
var origin = window.location.origin; // Returns base URL (https://example.com)
No estilo jQuery puro:
$(location).attr('href');
O objeto de localização também possui outras propriedades, como host, hash, protocolo e nome do caminho.
.attr()
no local. (1) Não é um elemento, por isso $(location)
é obscuro, na melhor das hipóteses, e (2) mesmo que funcionasse, você deveria estar usando .prop()
para obter propriedades. .attr()
é para atributos HTML.
http://www.refulz.com:8082/index.php#tab2?foo=789
Property Result
------------------------------------------
host www.refulz.com:8082
hostname www.refulz.com
port 8082
protocol http:
pathname index.php
href http://www.refulz.com:8082/index.php#tab2
hash #tab2
search ?foo=789
var x = $(location).attr('<property>');
Isso funcionará apenas se você tiver jQuery. Por exemplo:
<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>
$(location).attr('href'); // http://www.refulz.com:8082/index.php#tab2
$(location).attr('pathname'); // index.php
</script>
</html>
/index.php
vez do index.php
nome do caminho.
attr
deve ser usado apenas em objetos DOM, para coisas que podem ser definidas usando atributos HTML.
Se você precisar dos parâmetros de hash presentes no URL, window.location.href
pode ser uma escolha melhor.
window.location.pathname
=> /search
window.location.href
=> www.website.com/search#race_type=1
window.location.hash
Você deseja usar o window.location
objeto interno do JavaScript .
window.location.pathname
não recupera nada depois do?
Basta adicionar esta função no JavaScript e ela retornará o caminho absoluto do caminho atual.
function getAbsolutePath() {
var loc = window.location;
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
}
Espero que funcione para você.
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/'));
window.location é um objeto em javascript. retorna os seguintes dados
window.location.host #returns host
window.location.hostname #returns hostname
window.location.path #return path
window.location.href #returns full current url
window.location.port #returns the port
window.location.protocol #returns the protocol
em jquery você pode usar
$(location).attr('host'); #returns host
$(location).attr('hostname'); #returns hostname
$(location).attr('path'); #returns path
$(location).attr('href'); #returns href
$(location).attr('port'); #returns port
$(location).attr('protocol'); #returns protocol
windo.location.origin
?
Esta é uma questão mais complicada do que muitos podem pensar. Vários navegadores suportam objetos de localização JavaScript embutidos e parâmetros / métodos associados acessíveis através de window.location
ou document.location
. No entanto, diferentes tipos de Internet Explorer (6,7) não oferecem suporte a esses métodos da mesma maneira, ( window.location.href
? window.location.replace()
Não suportado); portanto, você deve acessá-los de maneira diferente, escrevendo código condicional o tempo todo para segurar o Internet Explorer manualmente.
Portanto, se você tiver o jQuery disponível e carregado, poderá usar o jQuery (local), como os outros mencionados, porque resolve esses problemas. Se, no entanto, você estiver fazendo, por exemplo, um redirecionamento de geolocalização do lado do cliente via JavaScript (ou seja, usando a API do Google Maps e os métodos de objeto de localização), não convém carregar a biblioteca jQuery inteira e escrever seu código condicional que verifica todas as versões do Internet Explorer / Firefox / etc.
O Internet Explorer deixa o gato de codificação front-end infeliz, mas o jQuery é um prato de leite.
Apenas para o nome do host, use:
window.location.hostname
O java-script fornece muitos métodos para recuperar o URL atual que é exibido na barra de endereços do navegador.
URL de teste:
http://
stackoverflow.com/questions/5515310/get-current-url-with-jquery/32942762
?
rq=1&page=2&tab=active&answertab=votes
#
32942762
resourceAddress.hash();
console.log('URL Object ', webAddress);
console.log('Parameters ', param_values);
Função:
var webAddress = {};
var param_values = {};
var protocol = '';
var resourceAddress = {
fullAddress : function () {
var addressBar = window.location.href;
if ( addressBar != '' && addressBar != 'undefined') {
webAddress[ 'href' ] = addressBar;
}
},
protocol_identifier : function () { resourceAddress.fullAddress();
protocol = window.location.protocol.replace(':', '');
if ( protocol != '' && protocol != 'undefined') {
webAddress[ 'protocol' ] = protocol;
}
},
domain : function () { resourceAddress.protocol_identifier();
var domain = window.location.hostname;
if ( domain != '' && domain != 'undefined' && typeOfVar(domain) === 'string') {
webAddress[ 'domain' ] = domain;
var port = window.location.port;
if ( (port == '' || port == 'undefined') && typeOfVar(port) === 'string') {
if(protocol == 'http') port = '80';
if(protocol == 'https') port = '443';
}
webAddress[ 'port' ] = port;
}
},
pathname : function () { resourceAddress.domain();
var resourcePath = window.location.pathname;
if ( resourcePath != '' && resourcePath != 'undefined') {
webAddress[ 'resourcePath' ] = resourcePath;
}
},
params : function () { resourceAddress.pathname();
var v_args = location.search.substring(1).split("&");
if ( v_args != '' && v_args != 'undefined')
for (var i = 0; i < v_args.length; i++) {
var pair = v_args[i].split("=");
if ( typeOfVar( pair ) === 'array' ) {
param_values[ decodeURIComponent( pair[0] ) ] = decodeURIComponent( pair[1] );
}
}
webAddress[ 'params' ] = param_values;
},
hash : function () { resourceAddress.params();
var fragment = window.location.hash.substring(1);
if ( fragment != '' && fragment != 'undefined')
webAddress[ 'hash' ] = fragment;
}
};
function typeOfVar (obj) {
return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
EX: com números de porta padrão
<protocol>//<hostname>:<port>/<pathname><search><hash>
https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy
http://stackoverflow.com:80/
Os nomes de domínio são registrados pelas regras e procedimentos da árvore do sistema de nomes de domínio (DNS). Servidores DNS de alguém que gerencia seu domínio com endereço IP para fins de endereçamento. Na hierarquia do servidor DNS, o nome raiz de um stackoverlfow.com é com.
gTLDs - com « stackoverflow (OR) in « co « google
Sistema local que você precisa para manter domínios que não são PÚBLICOS nos Arquivos do Host.
localhost.yash.com « localhsot - subdomain(
web-server
), yash.com - maindomain(
Proxy-Server
).
myLocalApplication.com 172.89.23.777
Se o parâmetro tiver uma época ?date=1467708674
, use.
var epochDate = 1467708674; var date = new Date( epochDate );
URL de autenticação com nome de usuário: senha, se usernaem / password contiver @ símbolo
como:
Username = `my_email@gmail`
Password = `Yash@777`
Você precisa codificar o URL @
como %40
. Referir...
http://my_email%40gmail.com:Yash%40777@www.my_site.com
encodeURI()
(vs) encodeURIComponent()
exemplo
var testURL = "http:my_email@gmail:Yash777@//stackoverflow.com?tab=active&page=1#32942762";
var Uri = "/:@?&=,#", UriComponent = "$;+", Unescaped = "(-_.!~*')"; // Fixed
var encodeURI_Str = encodeURI(Uri) +' '+ encodeURI( UriComponent ) +' '+ encodeURI(Unescaped);
var encodeURIComponent_Str = encodeURIComponent( Uri ) +' '+ encodeURIComponent( UriComponent ) +' '+ encodeURIComponent( Unescaped );
console.log(encodeURI_Str, '\n', encodeURIComponent_Str);
/*
/:@?&=,# +$; (-_.!~*')
%2F%3A%40%3F%26%3D%2C%23 %2B%24%3B (-_.!~*')
*/
Isso também funcionará:
var currentURL = window.location.href;
Você pode registrar window.location e ver todas as opções, apenas para o URL:
window.location.origin
para todo o caminho, use:
window.location.href
também há localização. _ _
.host
.hostname
.protocol
.pathname
Eu tenho isso para retirar as variáveis GET.
var loc = window.location;
var currentURL = loc.protocol + '//' + loc.host + loc.pathname;
Você pode simplesmente pegar seu caminho usando o próprio js window.location
ou location
fornecer o objeto do URL atual
console.log("Origin - ",location.origin);
console.log("Entire URL - ",location.href);
console.log("Path Beyond URL - ",location.pathname);
var currenturl = jQuery(location).attr('href');
Aqui está um exemplo para obter o URL atual usando jQuery e JavaScript:
$(document).ready(function() {
//jQuery
$(location).attr('href');
//Pure JavaScript
var pathname = window.location.pathname;
// To show it in an alert window
alert(window.location);
});
$.getJSON("idcheck.php?callback=?", { url:$(location).attr('href')}, function(json){
//alert(json.message);
});
A seguir, exemplos de trechos de código úteis que podem ser usados - alguns exemplos usam funções JavaScript padrão e não são específicos para o jQuery:
Use window.location.href . Isso fornecerá o URL completo .
Veja purl.js . Isso realmente ajudará e também pode ser usado, dependendo do jQuery. Use-o assim:
$.url().param("yourparam");
Se você deseja obter o caminho do site raiz, use o seguinte:
$(location).attr('href').replace($(location).attr('pathname'),'');
.replace('#.*', '')
? Remova não apenas a marca de hash, mas também tudo o que está depois dela?
Os 3 principais itens mais usados são:
1. window.location.hostname
2. window.location.href
3. window.location.pathname
var path = location.pathname
retorna o caminho da URL atual (o jQuery não é necessário). O uso de window.location
é opcional.
Todos os navegadores suportam o objeto da janela Javascript. Ele define a janela do navegador.
Os objetos e funções globais se tornam parte do objeto de janela automaticamente.
Todas as variáveis globais são propriedades de objetos de janela e todas as funções globais são seus métodos.
O documento HTML inteiro também é uma propriedade da janela.
Portanto, você pode usar o objeto window.location para obter todos os atributos relacionados à URL.
Javascript
console.log(window.location.host); //returns host
console.log(window.location.hostname); //returns hostname
console.log(window.location.pathname); //return path
console.log(window.location.href); //returns full current url
console.log(window.location.port); //returns the port
console.log(window.location.protocol) //returns the protocol
JQuery
console.log("host = "+$(location).attr('host'));
console.log("hostname = "+$(location).attr('hostname'));
console.log("pathname = "+$(location).attr('pathname'));
console.log("href = "+$(location).attr('href'));
console.log("port = "+$(location).attr('port'));
console.log("protocol = "+$(location).attr('protocol'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
location.pathname
onde você está usando location.path
- esta resposta precisa ser atualizada?
var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
// get current URL
$(location).attr('href');
var pathname = window.location.pathname;
alert(window.location);
No jstl, podemos acessar o caminho da URL atual usando pageContext.request.contextPath
: Se você deseja fazer uma chamada ajax,
url = "${pageContext.request.contextPath}" + "/controller/path"
Ex: na página http://stackoverflow.com/questions/406192
isso daráhttp://stackoverflow.com/controller/path