Sto usando jQuery. Come posso ottenere il percorso dell'URL corrente e assegnarlo a una variabile?
URL di esempio:
http://localhost/menuname.de?foo=bar&number=0
Sto usando jQuery. Come posso ottenere il percorso dell'URL corrente e assegnarlo a una variabile?
URL di esempio:
http://localhost/menuname.de?foo=bar&number=0
Risposte:
Per ottenere il percorso, è possibile utilizzare:
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)
In puro stile jQuery:
$(location).attr('href');
L'oggetto location ha anche altre proprietà, come host, hash, protocollo e nome percorso.
.attr()
sul posto. (1) Non è un elemento, quindi $(location)
nella migliore delle ipotesi è ombreggiato e (2) anche se ha funzionato, dovresti usare .prop()
per ottenere proprietà. .attr()
è per gli attributi 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>');
Funzionerà solo se hai jQuery. Per esempio:
<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
invece che index.php
per il nome percorso.
attr
dovrebbe essere usato solo su oggetti DOM, per cose che possono essere impostate usando gli attributi HTML.
Se hai bisogno dei parametri hash presenti nell'URL, window.location.href
potrebbe essere una scelta migliore.
window.location.pathname
=> /search
window.location.href
=> www.website.com/search#race_type=1
window.location.hash
Ti consigliamo di utilizzare l' window.location
oggetto incorporato di JavaScript .
window.location.pathname
non recupera nulla dopo il?
Basta aggiungere questa funzione in JavaScript e restituirà il percorso assoluto del percorso corrente.
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));
}
Spero che funzioni per te.
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/'));
window.location è un oggetto in javascript. restituisce i seguenti dati
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
in jquery puoi usare
$(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
?
Questo è un problema più complicato di quanto molti possano pensare. Diversi browser supportano oggetti di posizione JavaScript integrati e parametri / metodi associati accessibili tramite window.location
o document.location
. Tuttavia, diverse versioni di Internet Explorer (6,7) non supportano questi metodi allo stesso modo ( window.location.href
? window.location.replace()
Non supportato), quindi è necessario accedervi in modo diverso scrivendo continuamente il codice condizionale per tenere in mano Internet Explorer.
Quindi, se hai jQuery disponibile e caricato, puoi anche usare jQuery (posizione), come indicato dagli altri perché risolve questi problemi. Se tuttavia, ad esempio, stai eseguendo un reindirizzamento della geolocalizzazione sul lato client tramite JavaScript (ovvero utilizzando l'API di Google Maps e i metodi degli oggetti posizione), potresti non voler caricare l'intera libreria jQuery e scrivere il tuo codice condizionale che controlla ogni versione di Internet Explorer / Firefox / ecc.
Internet Explorer rende il gatto codificante front-end infelice, ma jQuery è un piatto di latte.
Solo per il nome host, utilizzare:
window.location.hostname
java-script fornisce molti metodi per recuperare l'URL corrente che viene visualizzato nella barra degli indirizzi del browser.
URL di prova:
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);
Funzione:
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();
}
ES: con numeri di porta predefiniti
<protocol>//<hostname>:<port>/<pathname><search><hash>
https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy
http://stackoverflow.com:80/
I nomi di dominio sono quelli registrati dalle regole e dalle procedure dell'albero DNS (Domain Name System). Server DNS di qualcuno che gestisce il tuo dominio con indirizzo IP a fini di indirizzamento. Nella gerarchia del server DNS il nome root di uno stackoverlfow.com è com.
gTLDs - com « stackoverflow (OR) in « co « google
Sistema locale è necessario mantenere i domini che non sono PUBBLICI nei file host.
localhost.yash.com « localhsot - subdomain(
web-server
), yash.com - maindomain(
Proxy-Server
).
myLocalApplication.com 172.89.23.777
Se il parametro ha un Epoch ?date=1467708674
quindi utilizzare.
var epochDate = 1467708674; var date = new Date( epochDate );
URL di autenticazione con nome utente: password, se usernaem / password contiene il simbolo @
come:
Username = `my_email@gmail`
Password = `Yash@777`
quindi è necessario codificare l'URL @
come %40
. Fare riferimento...
http://my_email%40gmail.com:Yash%40777@www.my_site.com
encodeURI()
(vs) encodeURIComponent()
esempio
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 (-_.!~*')
*/
Questo funzionerà anche:
var currentURL = window.location.href;
Puoi registrare window.location e vedere tutte le opzioni, solo per l'uso dell'URL:
window.location.origin
per l'intero percorso utilizzare:
window.location.href
c'è anche posizione. _ _
.host
.hostname
.protocol
.pathname
Ho questo per eliminare le variabili GET.
var loc = window.location;
var currentURL = loc.protocol + '//' + loc.host + loc.pathname;
Puoi semplicemente ottenere il tuo percorso usando js stesso window.location
o location
ti darà l'oggetto dell'URL corrente
console.log("Origin - ",location.origin);
console.log("Entire URL - ",location.href);
console.log("Path Beyond URL - ",location.pathname);
var currenturl = jQuery(location).attr('href');
Ecco un esempio per ottenere l'URL corrente utilizzando 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);
});
Di seguito sono riportati esempi di utili frammenti di codice che è possibile utilizzare: alcuni degli esempi utilizzano funzioni JavaScript standard e non sono specifici di jQuery:
Consulta 8 utili frammenti di jQuery per URL e stringhe di query .
Usa window.location.href . Questo ti darà l' URL completo .
Vedere purl.js . Ciò sarà di grande aiuto e può anche essere utilizzato, a seconda di jQuery. Usalo in questo modo:
$.url().param("yourparam");
Se vuoi ottenere il percorso del sito principale, usa questo:
$(location).attr('href').replace($(location).attr('pathname'),'');
.replace('#.*', '')
? Rimuovere non solo il segno di hash ma anche tutto dopo?
I primi 3 usati molto comunemente sono
1. window.location.hostname
2. window.location.href
3. window.location.pathname
var path = location.pathname
restituisce il percorso dell'URL corrente (non è necessario jQuery). L'uso di window.location
è facoltativo.
Tutti i browser supportano l'oggetto finestra Javascript. Definisce la finestra del browser.
Gli oggetti e le funzioni globali diventano automaticamente parte dell'oggetto finestra.
Tutte le variabili globali sono proprietà degli oggetti finestra e tutte le funzioni globali sono i suoi metodi.
L'intero documento HTML è anche una proprietà di finestra.
Quindi puoi usare l'oggetto window.location per ottenere tutti gli attributi relativi all'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
dove stai usando location.path
- questa risposta deve essere aggiornata?
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);
In jstl possiamo accedere al percorso url corrente usando pageContext.request.contextPath
, Se vuoi fare una chiamata Ajax,
url = "${pageContext.request.contextPath}" + "/controller/path"
Es: nella pagina http://stackoverflow.com/questions/406192
questo daràhttp://stackoverflow.com/controller/path