Chcę tylko uzyskać adres URL witryny. Nie adres URL pobrany z linku. Podczas ładowania strony muszę być w stanie pobrać pełny, aktualny adres URL witryny i ustawić go jako zmienną odpowiadającą moim potrzebom.
Chcę tylko uzyskać adres URL witryny. Nie adres URL pobrany z linku. Podczas ładowania strony muszę być w stanie pobrać pełny, aktualny adres URL witryny i ustawić go jako zmienną odpowiadającą moim potrzebom.
Odpowiedzi:
Posługiwać się:
window.location.href
Jak zauważono w komentarzach, poniższy wiersz działa, ale jest on nieprawidłowy dla przeglądarki Firefox.
document.URL;
document.URL
właściwość nie aktualizuje się po window.location
zakotwiczeniu (#), a window.location.href
robi to. Przygotowałem tutaj demo na żywo: jsfiddle.net/PxgKy Nie testowałem żadnych innych wersji Firefoksa. document.URL
W Chrome 20 i IE9 nie znaleziono problemów z używaniem .
window.location.host
iwindow.location.href.toString().split(window.location.host)[1]
document.baseURI
wtedy. Zasadniczo istnieją 3 sposoby, aby uzyskać adres URL document.baseURI
, document.URL
, i location
.
name="URL"
ta właściwość zostanie zacieniona na document
obiekcie, a kod się zepsuje. W takim przypadku document.URL
będzie odwoływał się do węzła DOM. Lepiej używać właściwości obiektu globalnego jak w window.location.href
.
Dostęp do informacji o adresie URL
JavaScript zapewnia wiele metod pobierania i zmiany bieżącego adresu URL, który jest wyświetlany w pasku adresu przeglądarki. Wszystkie te metody wykorzystują Location
obiekt, który jest własnością Window
obiektu. Możesz utworzyć nowy Location
obiekt, który ma bieżący adres URL w następujący sposób:
var currentLocation = window.location;
Podstawowa struktura adresów URL
<protocol>//<hostname>:<port>/<pathname><search><hash>
protokół: Określa nazwę protokołu używaną do uzyskania dostępu do zasobu w Internecie. (HTTP (bez SSL) lub HTTPS (z SSL))
nazwa hosta: nazwa hosta określa hosta, który jest właścicielem zasobu. Na przykład www.stackoverflow.com
. Serwer świadczy usługi przy użyciu nazwy hosta.
port: numer portu używany do rozpoznania określonego procesu, do którego ma zostać przekazany Internet lub inna wiadomość sieciowa, gdy dotrze na serwer.
nazwa ścieżki: ścieżka zawiera informacje o konkretnym zasobie na hoście, do którego klient sieciowy chce uzyskać dostęp. Na przykład /index.html
.
wyszukiwanie: ciąg zapytania odpowiada komponentowi ścieżki i zawiera ciąg informacji, które zasób może wykorzystać do określonego celu (na przykład jako parametry wyszukiwania lub dane do przetworzenia).
hash: zakotwiczona część adresu URL zawiera znak skrótu (#).
Dzięki tym Location
właściwościom obiektu możesz uzyskać dostęp do wszystkich tych składników URL oraz tego, co mogą ustawić lub zwrócić:
Mam nadzieję, że dostałeś swoją odpowiedź ..
window.location
, ale właściwości, a tutaj mamy przykład : var stringPathName = window.location.pathname
.
substring
. Może się jednak przydać, gdy chcesz użyć przekierowania, document.location = "/page.html";
aby przekierować na stronę głównąpage.html
search
, ale na poniższej liście opisów nazywa się to query
. Być może można je pogodzić lub dodać dodatkowe wyjaśnienia.
Służy window.location
do dostępu do odczytu i zapisu do obiektu lokalizacji powiązanego z bieżącą ramką. Jeśli chcesz tylko uzyskać adres jako ciąg tylko do odczytu, możesz użyć document.URL
, który powinien zawierać taką samą wartość jak window.location.href
.
Pobiera bieżący adres URL strony:
window.location.href
document
jest korzeniem drzewa dokumentu zdefiniowanego przez specyfikację. window
jest ogólnie równoważny, ale może nie być w dziwnych okolicznościach.
OK, uzyskanie pełnego adresu URL bieżącej strony jest łatwe przy użyciu czystego JavaScript. Na przykład wypróbuj ten kod na tej stronie:
window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"
window.location.href
Właściwość zwraca adres URL bieżącej strony.
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>
Nie wspominając o nich również:
jeśli potrzebujesz ścieżki względnej, po prostu użyj window.location.pathname
;
jeśli chcesz uzyskać nazwę hosta, możesz użyć window.location.hostname
;
a jeśli potrzebujesz uzyskać protokół osobno, użyj window.location.protocol
hash
znacznik, można uzyskać to lubią: window.location.hash
.Więc window.location.href
obsługuje wszystko naraz ... w zasadzie:
window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
//true
Również za pomocą window
nie jest potrzebne, jeśli jest już w zakresie okna ...
W takim przypadku możesz użyć:
location.protocol
location.hostname
location.pathname
location.hash
location.href
Aby uzyskać ścieżkę, możesz użyć:
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
Bieżącą lokalizację adresu URL można uzyskać za pomocą znacznika skrótu , używając:
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();
}
Powyższy kod może również komuś pomóc
http://www.server.com/path/to/Script.php?option=A1B2C3
, jeśli w systemie plików rozróżniana jest wielkość liter (Linux / Unix), niekoniecznie muszą być takie same Script.php i script.php. I nawet jeśli nie rozróżnia wielkości liter (Windows, niektóre Mac OS), ?option=A1B2C3
to nie to samo ?option=a1b2c3
, a nawet ?Option=A1B2C3
. Tylko serwer nie rozróżnia wielkości liter: www.server.com lub www.SeRvEr.cOm są takie same.
Dodanie wyniku do szybkiego odniesienia
window.location;
Location {href: "/programming/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
origin: "https://stackoverflow.com",
replace: ƒ, assign: ƒ, …}
document.location
Location {href: "/programming/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
"/programming/1034621/get-the-current-url-with-javascript"
location.hostname
"stackoverflow.com"
Aby uzyskać pełny adres URL z ciągami zapytań:
document.location.toString().toLowerCase();
W przypadku adresu URL hosta:
window.location
W jstl możemy uzyskać dostęp do bieżącej ścieżki URL za pomocą pageContext.request.contextPath
. Jeśli chcesz wykonać połączenie Ajax, użyj następującego adresu URL.
url = "${pageContext.request.contextPath}" + "/controller/path"
Przykład: dla strony http://stackoverflow.com/posts/36577223
to da http://stackoverflow.com/controller/path
.
Sposób uzyskania bieżącego obiektu lokalizacji to window.location
.
Porównaj to document.location
, co pierwotnie zwróciło tylko bieżący adres URL jako ciąg. Prawdopodobnie, aby uniknąć zamieszania, document.location
został zastąpiony przezdocument.URL
.
I wszystkie nowoczesne przeglądarki map document.location
dowindow.location
.
W rzeczywistości dla bezpieczeństwa w różnych przeglądarkach powinieneś używać window.location
zamiast document.location
.
Dla tych, którzy chcą rzeczywistego obiektu URL, potencjalnie dla narzędzia, które przyjmuje adresy URL jako argument:
const url = new URL(window.location.href)
Odpowiedź Nikhila Agrawala jest świetna, wystarczy dodać tutaj mały przykład, który możesz zrobić w konsoli, aby zobaczyć różne komponenty w akcji:
Jeśli chcesz, aby podstawowy adres URL bez ścieżki lub parametru zapytania (na przykład do wykonywania żądań AJAX przeciwko działał zarówno na serwerach programistycznych / testowych ORAZ, jak i serwerach produkcyjnych), window.location.origin
najlepiej jest zachować protokół i opcjonalny port (w rozwoju Django czasami mieć niestandardowy port, który go zepsuje, jeśli użyjesz nazwy hosta itp.)
Możesz uzyskać pełny link bieżącej strony, location.href
a aby uzyskać link do bieżącego kontrolera, użyj:
location.href.substring(0, location.href.lastIndexOf('/'));
Uzyskiwanie bieżącego adresu URL za pomocą JavaScript:
window.location.toString ();
window.location.href
jeśli odwołujesz się do konkretnego linku, który ma identyfikator, ten kod może ci pomóc.
$(".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+"");
}
});
});
Korzystam z ajax tutaj, aby przesłać identyfikator i przekierować stronę za pomocą window.location.replace . po prostu dodaj atrybut, id=""
jak podano.
Najpierw sprawdź, czy strona jest całkowicie załadowana
browser,window.location.toString();
window.location.href
następnie wywołaj funkcję, która pobiera adres URL, zmienną URL i drukuje na konsoli,
$(window).load(function(){
var url = window.location.href.toString();
var URL = document.URL;
var wayThreeUsingJQuery = $(location).attr('href');
console.log(url);
console.log(URL);
console.log(wayThreeUsingJQuery );
});