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;

Relaterte artikler