In joomla php kann ich dort den Basispfad abrufen $this->baseurl
, aber ich wollte den Basispfad in jquery abrufen.
Der Basispfad kann eines der folgenden Beispiele sein:
http://www.example.com/
http://localhost/example
http://www.example.com/sub/example
Das example
kann sich auch ändern.
javascript
jquery
Navin Rauniyar
quelle
quelle
Antworten:
Dieser wird dir helfen ...
quelle
http://localhost/myapp/what/ever/sub/folder
-> getBaseUrl ->http://localhost/myapp
:-)192.168.0.23/~sites/site/html/
stattsite.dev
. Das Abrufen des vollständigen Pfadnamens mit Javascript ist ebenfalls keine Option, da eine Site eine beliebige Anzahl von virtuellen Unterverzeichnissen haben kann.Ich denke, es wird für dich in Ordnung sein
quelle
window.location.origin
Dies wird Basis-URL erhalten
quelle
Dies ist eine sehr alte Frage, aber hier sind die Ansätze, die ich persönlich verwende ...
Standard / Basis-URL abrufen
Wie viele bereits festgestellt haben, funktioniert dies in den meisten Situationen.
Holen Sie sich die absolute Basis-URL
Dieser einfache Ansatz kann jedoch verwendet werden, um beliebige Portnummern zu entfernen.
Bearbeiten: Um das von Jason Rice gestellte Problem zu lösen, kann Folgendes verwendet werden, um automatisch den richtigen Protokolltyp einzufügen ...
Basis-URL festlegen
Als Bonus kann die Basis-URL dann global neu definiert werden.
quelle
Dies ist in Javascript nicht möglich, da dies eine serverseitige Eigenschaft ist. Javascript auf dem Client kann nicht wissen, wo Joomla installiert ist. Die beste Option ist, den Wert von irgendwie
$this->baseurl
in das Seiten-Javascript aufzunehmen und dann diesen Wert (phpBaseUrl
) zu verwenden.Sie können die URL dann folgendermaßen erstellen:
quelle
loc.host
der Port, für den eine URL wiehttp://localhost:8082/
diese Methode erzeugt wirdhttp://localhost:8082:8082/
,window.location.hostname
stattdessen verwendet werden sollte.document.baseURI
Gibt die Basis-URL zurück, die auch den Wert im<base/>
Tag https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURI berücksichtigtquelle
Hatte vor einiger Zeit das gleiche Problem, mein Problem war, ich brauchte einfach die Basis-URL. Hier gibt es viele detaillierte Optionen, aber um dies zu umgehen, verwenden Sie einfach das
window.location
Objekt. Geben Sie dies tatsächlich in die Browserkonsole ein und drücken Sie die Eingabetaste, um dort Ihre Optionen auszuwählen. Gut für meinen Fall war es einfach:quelle
Sie können jedoch nicht sagen, dass die baseurl () von CodeIgniter (oder php joomla) denselben Wert zurückgibt, da die baseurl in der .htaccess-Datei dieser Frameworks geändert werden kann.
Zum Beispiel :
Wenn Sie eine .htaccess-Datei wie diese in Ihrem localhost haben:
Das $ this-> baseurl () gibt http: // localhost / CodeIgniter / zurück
quelle
Ich bin bei mehreren Joomla-Projekten auf diesen Bedarf gestoßen. Der einfachste Weg, den ich gefunden habe, besteht darin, meiner Vorlage ein verstecktes Eingabefeld hinzuzufügen:
Wenn ich den Wert in JavaScript brauche:
Nicht so ausgefallen wie die Verwendung von reinem JavaScript, aber einfach und erledigt die Arbeit.
quelle
Der einfachste Weg, um eine Basis-URL in jQuery zu erhalten
quelle
Ich würde jedem empfehlen, in der Entwicklung ein HTML-Basistag zu erstellen und dann die href dynamisch zuzuweisen, damit sie in der Produktion unabhängig vom Host, den ein Client verwendet, automatisch angepasst wird:
Wenn Sie sich also in localhot: 8080 befinden, erreichen Sie jede verknüpfte oder referenzierte Datei von der Basis aus, z. B.:
http://localhost:8080/some/path/file.html
Wenn Sie sich in www.example.com befinden, ist dies der Fallhttp://www.example.com/some/path/file.html
Beachten Sie auch , dass jeder Standort du bist auf, sollten Sie nicht Referenzen wie Kleckse in hrefs verwenden, zB: Parent Lage verursacht
http://localhost:8080/
nichthttp://localhost:8080/some/path/
.Stellen Sie sich vor, Sie verweisen auf alle Hyperlinks als vollständig verurteilt ohne die Basis-URL.
quelle
Das Format ist Hostname / Pfadname / Suche
Die URL lautet also:
Für Ihren Fall
Also im Grunde die baseurl = hostname = window.location.hostname
quelle
Ich bin überrascht, dass keine der Antworten die Basis-URL berücksichtigt, wenn sie im
<base>
Tag festgelegt wurde. Bei allen aktuellen Antworten wird versucht, den Host- oder Servernamen oder den ersten Teil der Adresse abzurufen. Dies ist die vollständige Logik, die auch das<base>
Tag berücksichtigt (das sich möglicherweise auf eine andere Domäne oder ein anderes Protokoll bezieht):JQuery-Format:
Ohne sich auf die obige Logik einzulassen, die Kurzlösung, die sowohl
<base>
Tag als auchwindow.location.origin
:Js:
Jquery:
Schlussbemerkung: Für eine lokale Datei auf Ihrem Computer (nicht auf einem Host) gibt
window.location.origin
nurfile://
die Datei zurück, aber die obige Sorthand-Lösung gibt den vollständig korrekten Pfad zurück.quelle
<base>
Element enthalten ist.fast genauso wie Jenishs Antwort, aber etwas kürzer.
quelle
Ich war gerade auf der gleichen Bühne und diese Lösung funktioniert für mich
In der Ansicht
In der js-Datei greifen Sie
base
beispielsweise in Ihrem Szenario als Variable zu:Ich erinnere mich nicht, woher ich diese Informationen nehme, um sie zu würdigen. Wenn ich sie finde, werde ich die Antwort bearbeiten
quelle
quelle
Hier ist etwas schnelles, das auch mit
file://
URLs funktioniert .Ich habe mir diesen Einzeiler ausgedacht:
quelle
Sie haben erwähnt, dass sich dies
example.com
möglicherweise ändert, sodass ich vermute, dass Sie tatsächlich die Basis-URL benötigen, um die relative Pfadnotation für Ihre Skripte verwenden zu können. In diesem speziellen Fall ist keine Verwendung von Skripten erforderlich. Fügen Sie stattdessen das Basistag zu Ihrem Header hinzu:Normalerweise generiere ich den Link über PHP.
quelle
Für den Fall, dass jemand dies in eine sehr robuste Funktion aufteilen möchte
quelle
Einfach
Erzeugt ein IMG mit leerem Quellnamen und zwingt den Browser, die Basis-URL selbst zu berechnen, unabhängig davon, ob Sie
/index.html
etwas anderes haben oder nicht.quelle
Teilen und verbinden Sie die URL:
quelle
Fügen Sie dies in Ihre Kopfzeile ein, damit es verfügbar ist, wann immer Sie es benötigen.
Sie werden
http://localhost:81/your-path-file
oder bekommenhttp://localhost/your-path-file
.quelle