W joomla php tam mogę użyć, $this->baseurl
aby uzyskać ścieżkę podstawową, ale chciałem uzyskać ścieżkę podstawową w jquery.
Podstawową ścieżką może być dowolny z poniższych przykładów:
http://www.example.com/
http://localhost/example
http://www.example.com/sub/example
example
Może również zmienić.
javascript
jquery
Navin Rauniyar
źródło
źródło
Odpowiedzi:
Ten pomoże ci ...
źródło
http://localhost/myapp/what/ever/sub/folder
-> getBaseUrl ->http://localhost/myapp
:-)192.168.0.23/~sites/site/html/
zamiastsite.dev
. Uzyskanie pełnej ścieżki za pomocą JavaScript również nie jest opcją, ponieważ witryna może mieć dowolną liczbę wirtualnych podkatalogów.Myślę, że to będzie dla ciebie w porządku
źródło
window.location.origin
Spowoduje to uzyskanie podstawowego adresu URL
źródło
To bardzo stare pytanie, ale oto podejścia, których osobiście używam ...
Pobierz standardowy / podstawowy adres URL
Jak wielu już powiedziało, działa to w większości sytuacji.
Uzyskaj bezwzględny podstawowy adres URL
Jednak to proste podejście można wykorzystać do usunięcia wszelkich numerów portów.
Edycja: Aby rozwiązać problem, zgłoszony przez Jasona Rice , można użyć następujących elementów, aby automatycznie wstawić właściwy typ protokołu ...
Ustaw podstawowy adres URL
Jako bonus - podstawowy adres URL można następnie globalnie przedefiniować.
źródło
Nie jest to możliwe z poziomu javascript, ponieważ jest to właściwość po stronie serwera. Javascript na kliencie nie może wiedzieć, gdzie jest zainstalowana Joomla. Najlepszą opcją jest dołączenie w jakiś sposób wartości
$this->baseurl
javascript do strony, a następnie użycie tej wartości (phpBaseUrl
).Następnie możesz zbudować adres URL w następujący sposób:
źródło
loc.host
ma port, za url jakhttp://localhost:8082/
tej metody spowodujehttp://localhost:8082:8082/
,window.location.hostname
powinien być stosowany zamiast.document.baseURI
zwraca podstawowy adres URL również z uwzględnieniem wartości w<base/>
tagu https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURIźródło
Miałem ten sam problem jakiś czas temu, mój problem polegał na tym, że po prostu potrzebowałem podstawowego adresu URL. Istnieje wiele szczegółowych opcji, ale aby to obejść, po prostu użyj
window.location
obiektu. Właściwie wpisz to w konsoli przeglądarki i naciśnij Enter, aby wybrać tam opcje. W moim przypadku było to po prostu:źródło
Ale nie można powiedzieć, że baseurl () programu CodeIgniter (lub php joomla) zwróci tę samą wartość, ponieważ można zmienić baseurl w pliku .htaccess tych frameworków.
Na przykład :
Jeśli masz taki plik .htaccess na swoim hoście lokalnym:
$ This-> baseurl () zwróci http: // localhost / CodeIgniter /
źródło
Napotkałem tę potrzebę w kilku projektach Joomla. Najprostszym sposobem rozwiązania problemu, jaki znalazłem, jest dodanie ukrytego pola wprowadzania do mojego szablonu:
Kiedy potrzebuję wartości w JavaScript:
Nie tak wyszukane, jak używanie czystego JavaScript, ale proste i gotowe.
źródło
najprostszy sposób na uzyskanie podstawowego adresu URL w jQuery
źródło
Zalecałbym każdemu utworzenie podstawowego tagu HTML w fazie rozwoju, a następnie dynamiczne przypisanie atrybutu href, aby w środowisku produkcyjnym, niezależnie od hosta, z którego korzysta klient, automatycznie się do niego dostosował:
Więc jeśli jesteś w localhot: 8080, dotrzesz do każdego powiązanego lub wymienionego pliku z bazy, np .:
http://localhost:8080/some/path/file.html
Jeśli jesteś w www.example.com, będzie tohttp://www.example.com/some/path/file.html
Zauważ również, że w każdej lokalizacji, w której się znajdujesz, nie powinieneś używać odniesień, takich jak globs, w hrefach, np .: Lokalizacja nadrzędna
http://localhost:8080/
nie powodujehttp://localhost:8080/some/path/
.Udawaj, że odnosisz się do wszystkich hiperłączy jako pełnych wyroków bez podstawowego adresu URL.
źródło
Format to nazwa hosta / nazwa ścieżki / wyszukiwanie
Tak więc adres URL to:
W twoim przypadku
Zasadniczo więc baseurl = hostname = window.location.hostname
źródło
Dziwię się, że żadna z odpowiedzi nie bierze pod uwagę podstawowego adresu URL, jeśli był ustawiony w
<base>
tagu. Wszystkie aktualne odpowiedzi próbują uzyskać nazwę hosta, nazwę serwera lub pierwszą część adresu. Oto pełna logika, która uwzględnia również<base>
tag (który może odnosić się do innej domeny lub protokołu):Format jquery:
Bez angażowania się w powyższą logikę, skrótowe rozwiązanie, które uwzględnia zarówno
<base>
tag, jak iwindow.location.origin
:Js:
JQuery:
Uwaga końcowa: w przypadku pliku lokalnego na komputerze (nie na hoście)
window.location.origin
jedyne, co zwraca,file://
ale powyższe rozwiązanie, zwraca pełną poprawną ścieżkę.źródło
<base>
element.prawie taka sama jak odpowiedź Jenish, ale trochę krótsza.
źródło
Byłem na tym samym etapie i to rozwiązanie działa u mnie
W widoku
W pliku js uzyskujesz dostęp
base
jako zmienna, na przykład w Twoim scenariuszu:Nie pamiętam, skąd biorę te informacje do uznania, jeśli je znajdę, poprawię odpowiedź
źródło
źródło
Oto coś szybkiego, co działa również z
file://
adresami URL.Wymyśliłem ten jednolinijkowy:
źródło
Wspomniałeś, że
example.com
może się to zmienić, więc podejrzewam, że w rzeczywistości potrzebujesz podstawowego adresu URL tylko po to, aby móc używać notacji ścieżki względnej dla swoich skryptów. W tym konkretnym przypadku nie ma potrzeby używania skryptów - zamiast tego dodaj tag podstawowy do nagłówka:Zwykle generuję link przez PHP.
źródło
Na wypadek, gdyby ktoś chciał, aby to rozbite było na bardzo solidną funkcję
źródło
Łatwo
Generuje img z pustą nazwą-src zmusza przeglądarkę do samodzielnego obliczenia podstawowego-url, bez względu na to, czy masz,
/index.html
czy cokolwiek innego.źródło
Podziel i dołącz adres URL:
źródło
Umieść to w swoim nagłówku, aby było dostępne w dowolnym momencie.
Otrzymasz
http://localhost:81/your-path-file
lubhttp://localhost/your-path-file
.źródło