Cum să obțineți url-ul de bază cu jquery sau javascript?

În joomla php nu pot folosi $acest->baseurl pentru a obține cale de bază, dar am vrut pentru a obține cale de bază în jquery.

Cale de bază poate fi orice de la următorul exemplu:

http://www.example.com/
http://localhost/example
http://www.example.com/sub/example

De exemplu pot, de asemenea, schimba.

Comentarii la întrebare (4)

Acest lucru te va ajuta nimeni...

var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
Comentarii (2)

Cred că va fi bine pentru tine

var base_url = window.location.origin;

var host = window.location.host;

var pathArray = window.location.pathname.split( '/' );
Comentarii (5)

Acest lucru va obține url-ul de bază

var baseurl = window.location.origin+window.location.pathname;
Comentarii (2)

Acest lucru nu este posibil din javascript, deoarece acesta este un server-side de proprietate. Javascript pe client nu poate ști unde joomla este instalat. Cea mai bună opțiune este de a include într-un fel valoare de $acest->baseurl în pagină javascript și apoi utilizați această valoare (phpBaseUrl).

Apoi, puteți construi url-ul astfel:

var loc = window.location;
var baseUrl = loc.protocol + "//" + loc.hostname + (loc.port? ":"+loc.port : "") + "/" + phpBaseUrl;
Comentarii (2)

Aceasta este o extrem de întrebare veche, dar aici sunt abordări eu personal folosesc ...

Ia Standard/URL de Bază

După cum au menționat deja, acest lucru funcționează pentru cele mai multe situații.

var url = window.location.origin;


Obține Absolut URL-ul de Bază

Cu toate acestea, această abordare simplă poate fi utilizată pentru benzi de pe orice numere de port.

var url = "http://" + location.host.split(":")[0];


Setați URL-ul de Bază

Ca un bonus-URL-ul de bază poate apoi fi redefinite la nivel global.

document.head.innerHTML = document.head.innerHTML + "";
Comentarii (1)
var getUrl = window.location;
var baseurl = getUrl.origin; //or
var baseurl =  getUrl.origin + '/' +getUrl.pathname.split('/')[1]; 

Dar poate't spune că baseurl() de CodeIgniter(sau php joomla) va returna aceeasi valoare, deoarece este posibil pentru a schimba baseurl în .htaccess din aceste cadre.

De exemplu :

Dacă aveți o .htaccess ca aceasta din localhost :

RewriteEngine on
RewriteBase /CodeIgniter/
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

La $acest->baseurl() va returna http://localhost/CodeIgniter/

Comentarii (0)

Avut aceeasi problema acum ceva timp, problema mea a fost, pur și simplu am nevoie de url-ul de bază. Există o mulțime de opțiuni detaliate aici, dar pentru a obține în jurul valorii de acest lucru, pur și simplu utilizați fereastra.locație` obiect. De fapt tipul asta in consola browser și apăsați enter pentru a selecta opțiunile de acolo. Ei bine, pentru cazul meu a fost simplu:

window.location.origin
Comentarii (0)

cel mai simplu mod de a obține url-ul de bază în jQuery

window.location.origin
Comentarii (0)

Am've rula în această nevoie pe mai multe Joomla proiect. Cel mai simplu mod de am'am găsit la adresă este de a adăuga un câmp de introducere ascuns la modelul meu:

<input type="hidden" id="baseurl" name="baseurl" value="<?php echo $this->baseurl; ?>" />

Când am nevoie de valoarea în JavaScript:

var baseurl = document.getElementById('baseurl').value;

Nu la fel de elegant ca folosind pură JavaScript, dar simplu și devine treaba.

Comentarii (0)

Mi-ar recomanda pentru toată lumea pentru a crea HTML tag de bază în dezvoltare, apoi atribuiți href dinamic, atât în producția orice gazdă un client foloseste, se va automacically popularitate, pentru că:


 Some page title
  <script type="text/javascript">
    var head  = document.getElementsByTagName('head')[0];
    var base = document.createElement("base");
    base.href = window.document.location.origin;
    head.appendChild(base);
  </script>

 ...

Deci, dacă sunteți în localhot:8080, va ajunge la fiecare legătură sau trimitere fișier de bază, de exemplu: http://localhost:8080/some/path/file.html Dacă sunteți în www.example.com, acesta va fi http://www.example.com/some/path/file.html

De asemenea, rețineți că, în fiecare locație're pe, nu trebuie să utilizați referințe, cum ar fi globuri în hrefs, de exemplu: locație Părinte cauze http://localhost:8080/ " nu " http://localhost:8080/some/path/.

Pretent ai referință toate hyperlink-uri la fel de plin condamnat fără bas url-ul.

Comentarii (0)

Formatul este hostname/cale/căutare

Așa că url-ul este :

var url = window.location.hostname + window.location.pathname + window.location.hash

Pentru cazul dumneavoastră

window.location.hostname = "stackoverflow.com"
window.location.pathname ="/questions/25203124/how-to-get-base-url-with-jquery-or-javascript"
window.location.hash = ""

Deci, practic baseurl = hostname = window.locație.hostname

Comentarii (0)

document.baseURI returnează URL-ul de bază, de asemenea, respectarea valorii în `<bază/> tag https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURI

Comentarii (0)
window.location.origin+"/"+window.location.pathname.split('/')[1]+"/"+page+"/"+page+"_list.jsp"

aproape aceeași ca Jenish răspuns, dar un pic mai scurt.

Comentarii (0)

Am fost pe aceeași scenă și această soluție funcționează pentru mine

În opinia

<?php
    $document = JFactory::getDocument();

    $document->addScriptDeclaration('var base = \''.JURI::base().'\'');
    $document->addScript('components/com_name/js/filter.js');
?>

În js fișiere de acces "de bază" ca o variabilă, de exemplu, în scenariul tău:

console.log(base) // will print
// http://www.example.com/
// http://localhost/example
// http://www.example.com/sub/example

Nu-mi amintesc unde am lua aceste informații pentru a da de credit, dacă voi găsi, voi edita răspunsul

Comentarii (0)
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
Comentarii (1)

Aici's ceva rapid, care, de asemenea, funcționează cu file:// Url-uri.

Am venit cu acest one-liner:

[((1!=location.href.split(location.href.split("/").pop())[0].length?location.href.split(location.href.split("/").pop())[0]:(location.protocol,location.protocol+"//" + location.host+"/"))).replace(location.protocol+"//"+location.protocol+"//"+location.protocol+"://")]
Comentarii (0)

Ușor

$('')[0].src

Generează o img cu gol src-numele forțele browser-ul pentru a calcula baza-url-ul de la sine, indiferent dacă au /index.html sau orice altceva.

Comentarii (3)

În cazul în care cineva ar dori să vadă acest izbucnit într-o foarte robust funcție

    function getBaseURL() {
        var loc = window.location;
        var baseURL = loc.protocol + "//" + loc.hostname;
        if (typeof loc.port !== "undefined" && loc.port !== "") baseURL += ":" + loc.port;
        // strip leading /
        var pathname = loc.pathname;
        if (pathname.length > 0 && pathname.substr(0,1) === "/") pathname = pathname.substr(1, pathname.length - 1);
        var pathParts = pathname.split("/");
        if (pathParts.length > 0) {
            for (var i = 0; i < pathParts.length; i++) {
                if (pathParts[i] !== "") baseURL += "/" + pathParts[i];
            }
        }
        return baseURL;
    }
Comentarii (2)

Ați menționat că example.com se poate schimba, așa că am bănuit că de fapt ai nevoie de url-ul de bază doar pentru a fi capabil de a utiliza calea relativă notație pentru script-uri. În acest caz nu este nevoie de a utiliza scripting - în loc să adăugați etichetă de bază pentru antet:



Eu, de obicei, de a genera link-ul prin intermediul PHP.

Comentarii (0)

A pune acest lucru în header-ul, astfel încât acesta va fi disponibil ori de câte ori aveți nevoie de ea.

var base_url = "<?php echo base_url();?>";

Veți obține http://localhost:81/your-path-file " sau " http://localhost/your-path-file.

Comentarii (0)