Korzystam z jQuery. Jak uzyskać ścieżkę bieżącego adresu URL i przypisać go do zmiennej?
Przykładowy adres URL:
http://localhost/menuname.de?foo=bar&number=0
Korzystam z jQuery. Jak uzyskać ścieżkę bieżącego adresu URL i przypisać go do zmiennej?
Przykładowy adres URL:
http://localhost/menuname.de?foo=bar&number=0
Odpowiedzi:
Aby uzyskać ścieżkę, możesz użyć:
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)
W czystym stylu jQuery:
$(location).attr('href');
Obiekt lokalizacji ma również inne właściwości, takie jak host, skrót, protokół i nazwa ścieżki.
.attr()
na miejscu. (1) To nie jest element, więc $(location)
jest co najwyżej zacieniony, i (2) nawet jeśli zadziałało, powinieneś użyć, .prop()
aby uzyskać właściwości. .attr()
dotyczy atrybutów 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>');
Działa to tylko wtedy, gdy masz jQuery. Na przykład:
<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
zamiast index.php
nazwy ścieżki.
attr
ma być wykorzystywane wyłącznie na DOM obiektów, za rzeczy, które można ustawić za pomocą atrybutów HTML.
Jeśli potrzebujesz parametrów skrótu obecnych w adresie URL, window.location.href
może być lepszym wyborem.
window.location.pathname
=> /search
window.location.href
=> www.website.com/search#race_type=1
window.location.hash
Będziesz chciał użyć wbudowanego window.location
obiektu JavaScript .
window.location.pathname
która niczego nie odzyskuje po?
Wystarczy dodać tę funkcję w JavaScript, a zwróci bezwzględną ścieżkę bieżącej ścieżki.
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));
}
Mam nadzieję, że to zadziała dla ciebie.
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/'));
window.location to obiekt w javascript. zwraca następujące dane
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
w jquery możesz użyć
$(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
?
Jest to bardziej skomplikowana kwestia, niż wielu może myśleć. Kilka przeglądarek obsługuje wbudowane obiekty lokalizacji JavaScript i powiązane parametry / metody dostępne za pośrednictwem window.location
lub document.location
. Jednak różne wersje Internet Explorera (6,7) nie obsługują tych metod w ten sam sposób, ( window.location.href
? window.location.replace()
Nieobsługiwany), więc musisz mieć do nich różny dostęp, pisząc cały czas kod warunkowy, aby trzymać Internet Explorera.
Tak więc, jeśli masz dostępne i załadowane jQuery, równie dobrze możesz użyć jQuery (lokalizacja), jak inni wspomniani, ponieważ rozwiązuje te problemy. Jeśli jednak przykładowo przekierowujesz geolokalizację po stronie klienta za pomocą JavaScript (to znaczy, używając interfejsu API Map Google i metod obiektu lokalizacji), możesz nie chcieć załadować całej biblioteki jQuery i napisać kod warunkowy, który sprawdza każdą wersję przeglądarki Internet Explorer / Firefox / itp.
Internet Explorer sprawia, że front-end kot jest niezadowolony, ale jQuery to talerz mleka.
Tylko dla nazwy hosta użyj:
window.location.hostname
Skrypt java udostępnia wiele metod pobierania bieżącego adresu URL wyświetlanego w pasku adresu przeglądarki.
Testowy adres URL:
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);
Funkcjonować:
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: Z domyślnymi numerami portów
<protocol>//<hostname>:<port>/<pathname><search><hash>
https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy
http://stackoverflow.com:80/
Nazwy domen są rejestrowane zgodnie z zasadami i procedurami drzewa systemu nazw domen (DNS). Serwery DNS osoby, która zarządza Twoją domeną za pomocą adresu IP do celów adresowania. W hierarchii serwerów DNS nazwą roota stackoverlfow.com jest com.
gTLDs - com « stackoverflow (OR) in « co « google
System lokalny musisz utrzymywać domeny, które nie są PUBLICZNE w plikach hosta.
localhost.yash.com « localhsot - subdomain(
web-server
), yash.com - maindomain(
Proxy-Server
).
myLocalApplication.com 172.89.23.777
Jeśli parametr ma epokę, ?date=1467708674
użyj.
var epochDate = 1467708674; var date = new Date( epochDate );
Adres URL uwierzytelnienia z nazwą użytkownika: hasło, Jeśli nazwa użytkownika / hasło zawiera symbol @,
taki jak:
Username = `my_email@gmail`
Password = `Yash@777`
następnie musisz zakodować adres URL @
jako %40
. Odnosić się...
http://my_email%40gmail.com:Yash%40777@www.my_site.com
encodeURI()
(vs) encodeURIComponent()
przykład
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 (-_.!~*')
*/
Będzie to również działać:
var currentURL = window.location.href;
Możesz zalogować window.location i zobaczyć wszystkie opcje, używając tylko adresu URL:
window.location.origin
dla całej ścieżki użyj:
window.location.href
jest też lokalizacja. _ _
.host
.hostname
.protocol
.pathname
Mam to, aby usunąć zmienne GET.
var loc = window.location;
var currentURL = loc.protocol + '//' + loc.host + loc.pathname;
Możesz po prostu pobrać swoją ścieżkę, używając samego js, window.location
lub location
da ci obiekt bieżącego adresu URL
console.log("Origin - ",location.origin);
console.log("Entire URL - ",location.href);
console.log("Path Beyond URL - ",location.pathname);
var currenturl = jQuery(location).attr('href');
Oto przykład, aby uzyskać bieżący adres URL za pomocą jQuery i 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);
});
Poniżej znajdują się przykłady użytecznych fragmentów kodu, których można użyć - niektóre przykłady wykorzystują standardowe funkcje JavaScript i nie są specyficzne dla jQuery:
Zobacz 8 Przydatnych fragmentów jQuery dla adresów URL i kwerend .
Użyj window.location.href . Otrzymasz pełny adres URL .
Zobacz purl.js . To naprawdę pomoże i może być również użyte, w zależności od jQuery. Użyj tego w ten sposób:
$.url().param("yourparam");
Jeśli chcesz uzyskać ścieżkę do strony głównej, użyj tego:
$(location).attr('href').replace($(location).attr('pathname'),'');
.replace('#.*', '')
? Usunąć nie tylko znak skrótu, ale wszystko po nim?
Bardzo często używane 3 najlepsze
1. window.location.hostname
2. window.location.href
3. window.location.pathname
var path = location.pathname
zwraca ścieżkę bieżącego adresu URL (jQuery nie jest potrzebne). Zastosowanie window.location
jest opcjonalne.
Wszystkie przeglądarki obsługują obiekt okna JavaScript. Określa okno przeglądarki.
Globalne obiekty i funkcje stają się automatycznie częścią obiektu okna.
Wszystkie zmienne globalne są właściwościami obiektów okien, a wszystkie funkcje globalne są jego metodami.
Cały dokument HTML jest również własnością okna.
Możesz więc użyć obiektu window.location, aby uzyskać wszystkie atrybuty związane z adresem 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
gdzie używasz location.path
- czy ta odpowiedź wymaga aktualizacji?
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);
W jstl możemy uzyskać dostęp do bieżącej ścieżki URL za pomocą pageContext.request.contextPath
, jeśli chcesz wykonać wywołanie ajax,
url = "${pageContext.request.contextPath}" + "/controller/path"
Np .: na stronie http://stackoverflow.com/questions/406192
to dahttp://stackoverflow.com/controller/path