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.URLwłaściwość nie aktualizuje się po window.locationzakotwiczeniu (#), a window.location.hrefrobi to. Przygotowałem tutaj demo na żywo: jsfiddle.net/PxgKy Nie testowałem żadnych innych wersji Firefoksa. document.URLW Chrome 20 i IE9 nie znaleziono problemów z używaniem .
window.location.hostiwindow.location.href.toString().split(window.location.host)[1]
document.baseURIwtedy. Zasadniczo istnieją 3 sposoby, aby uzyskać adres URL document.baseURI, document.URL, i location.
name="URL"ta właściwość zostanie zacieniona na documentobiekcie, a kod się zepsuje. W takim przypadku document.URLbę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ą Locationobiekt, który jest własnością Windowobiektu. Możesz utworzyć nowy Locationobiekt, 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 Locationwł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.locationdo 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
documentjest korzeniem drzewa dokumentu zdefiniowanego przez specyfikację. windowjest 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.hrefWł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
hashznacznik, można uzyskać to lubią: window.location.hash.Więc window.location.hrefobsł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=A1B2C3to 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/36577223to 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.locationzostał zastąpiony przezdocument.URL .
I wszystkie nowoczesne przeglądarki map document.locationdowindow.location .
W rzeczywistości dla bezpieczeństwa w różnych przeglądarkach powinieneś używać window.locationzamiast 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.originnajlepiej 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 );
});