Hvordan få base-URL med jQuery eller JavaScript?
I Joomla PHP kan jeg bruke $this->baseurl for å få basestien, men jeg ønsket å få basestien i jQuery.
Grunnstien kan være et av følgende eksempler:
http://www.example.com/
http://localhost/example
http://www.example.com/sub/example
Eksemplet example kan også endres.
Svar #1
Jeg tror dette vil fungere godt for deg:
var base_url = window.location.origin;
var host = window.location.host;
var pathArray = window.location.pathname.split( '/' );
Her er 'Can I Use...'-tabellen
Svar #2
Denne vil hjelpe deg...
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
Svar #3
Dette vil hente base-URL
var baseurl = window.location.origin+window.location.pathname;
Svar #4
document.baseURI returnerer grunn-URL også med respekt for verdien i <base/>-taggen https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURI
Svar #5
Dette er et ekstremt gammelt spørsmål, men her er tilnærmingene jeg personlig bruker ...
Hent standard-/base-URL
Som mange allerede har påpekt, fungerer dette i de fleste situasjoner.
var url = window.location.origin;
Hent absolutt base-URL
Imidlertid kan denne enkle tilnærmingen brukes til å fjerne eventuelle portnumre.
var url = "http://" + location.host.split(":")[0];
Rediger: For å ta opp bekymringen, fremmet av Jason Rice, kan følgende brukes for å automatisk sette inn riktig protokolltype ...
var url = window.location.protocol + "//" + location.host.split(":")[0];
Angi grunnleggende URL
Som en bonus -- kan basis-URL-en da omdefineres globalt.
document.head.innerHTML = document.head.innerHTML + "<base href='" + url + "' />";
Svar #6
Dette er ikke mulig fra Javascript, fordi dette er en server-side egenskap. Javascript på klienten kan ikke vite hvor Joomla er installert. Det beste alternativet er å på en eller annen måte inkludere verdien av $this->baseurl i sidejavascripten og deretter bruke denne verdien (phpBaseUrl).
Du kan da bygge URL-en slik:
var loc = window.location;
var baseUrl = loc.protocol + "//" + loc.hostname + (loc.port? ":"+loc.port : "") + "/" + phpBaseUrl;
