Dans joomla php, je peux utiliser $this->baseurl
pour obtenir le chemin de base, mais je voulais obtenir le chemin de base dans jquery.
Le chemin de base peut être l'un des exemples suivants:
http://www.example.com/
http://localhost/example
http://www.example.com/sub/example
Le example
peut également changer.
javascript
jquery
Navin Rauniyar
la source
la source
Réponses:
Celui-ci vous aidera ...
la source
http://localhost/myapp/what/ever/sub/folder
-> getBaseUrl ->http://localhost/myapp
:-)192.168.0.23/~sites/site/html/
au lieu desite.dev
. Obtenir le chemin complet avec Javascript n'est pas non plus une option, car un site peut avoir n'importe quel nombre de sous-répertoires virtuels.Je pense que ça ira pour toi
la source
window.location.origin
Cela obtiendra l'URL de base
la source
C'est une question extrêmement ancienne, mais voici les approches que j'utilise personnellement ...
Obtenir l'URL standard / de base
Comme beaucoup l'ont déjà dit, cela fonctionne dans la plupart des situations.
Obtenir l'URL de base absolue
Cependant, cette approche simple peut être utilisée pour supprimer tout numéro de port.
Edit: Pour répondre au problème, posé par Jason Rice , ce qui suit peut être utilisé pour insérer automatiquement le type de protocole correct ...
Définir l'URL de base
En prime, l'URL de base peut ensuite être redéfinie globalement.
la source
Ce n'est pas possible à partir de javascript, car il s'agit d'une propriété côté serveur. Javascript sur le client ne peut pas savoir où joomla est installé. La meilleure option est d'inclure d'une manière ou d'une autre la valeur de
$this->baseurl
dans la page javascript, puis d'utiliser cette valeur (phpBaseUrl
).Vous pouvez ensuite créer l'URL comme ceci:
la source
loc.host
le port, pour une URL commehttp://localhost:8082/
cette méthode produirahttp://localhost:8082:8082/
,window.location.hostname
doit être utilisé à la place.document.baseURI
renvoie l'URL de base en respectant également la valeur de la<base/>
balise https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURIla source
J'ai eu le même problème il y a quelque temps, mon problème était que j'avais simplement besoin de l'URL de base. Il y a beaucoup d'options détaillées ici, mais pour contourner cela, utilisez simplement l'
window.location
objet. En fait, tapez ceci dans la console du navigateur et appuyez sur Entrée pour sélectionner vos options. Eh bien pour mon cas, c'était simplement:la source
Mais vous ne pouvez pas dire que le baseurl () de CodeIgniter (ou php joomla) retournera la même valeur, car il est possible de changer le baseurl dans le fichier .htaccess de ces frameworks.
Par exemple :
Si vous avez un fichier .htaccess comme celui-ci dans votre hôte local:
Le $ this-> baseurl () renverra http: // localhost / CodeIgniter /
la source
J'ai rencontré ce besoin sur plusieurs projets Joomla. Le moyen le plus simple que j'ai trouvé pour traiter est d'ajouter un champ de saisie masqué à mon modèle:
Quand j'ai besoin de la valeur en JavaScript:
Pas aussi sophistiqué que d'utiliser du JavaScript pur mais simple et fait le travail.
la source
le moyen le plus simple d'obtenir l'URL de base dans jQuery
la source
Je recommanderais à tout le monde de créer une balise de base HTML en développement, puis d'attribuer le href dynamiquement, donc en production quel que soit l'hôte utilisé par un client, il s'y ajoutera automatiquement:
Donc si vous êtes dans localhot: 8080, vous accéderez à chaque fichier lié ou référencé depuis la base, par exemple:
http://localhost:8080/some/path/file.html
Si vous êtes dans www.example.com, ce serahttp://www.example.com/some/path/file.html
Notez également que, à chaque emplacement sur lequel vous vous trouvez, vous ne devez pas utiliser de références comme les globs dans hrefs, par exemple: L'emplacement parent
http://localhost:8080/
ne cause pashttp://localhost:8080/some/path/
.Prétendez que vous référencez tous les liens hypertexte comme condamnés complets sans l'URL bas.
la source
Le format est nom d'hôte / chemin / recherche
Donc, l'URL est:
Pour votre cas
Donc, fondamentalement, le baseurl = hostname = window.location.hostname
la source
Je suis surpris qu'aucune des réponses ne considère l'URL de base si elle était définie dans
<base>
tag. Toutes les réponses actuelles tentent d'obtenir le nom d'hôte ou le nom du serveur ou la première partie de l'adresse. C'est la logique complète qui considère également la<base>
balise (qui peut faire référence à un autre domaine ou protocole):Format Jquery:
Sans s'impliquer dans la logique ci-dessus, la solution abrégée qui considère à la fois
<base>
tag etwindow.location.origin
:Js:
Jquery:
Note finale: pour un fichier local sur votre ordinateur (pas sur un hôte), le
window.location.origin
seul retourne lefile://
mais la solution de tri ci-dessus renvoie le chemin complet correct.la source
<base>
élément.presque la même que la réponse de Jenish mais un peu plus courte.
la source
J'étais juste sur la même scène et cette solution fonctionne pour moi
Dans la vue
Dans le fichier js, vous accédez en
base
tant que variable par exemple dans votre scénario:Je ne me souviens pas où je prends cette information pour donner crédit, si je la trouve, je modifierai la réponse
la source
la source
Voici quelque chose de rapide qui fonctionne également avec les
file://
URL.Je suis venu avec ce one-liner:
la source
Vous avez mentionné que le
example.com
peut changer, donc je soupçonne qu'en fait vous avez besoin de l'URL de base juste pour pouvoir utiliser la notation de chemin relatif pour vos scripts. Dans ce cas particulier, il n'est pas nécessaire d'utiliser le script - ajoutez plutôt la balise de base à votre en-tête:Je génère généralement le lien via PHP.
la source
Au cas où quelqu'un voudrait voir cela divisé en une fonction très robuste
la source
Facile
Génère une image avec un nom src vide force le navigateur à calculer l'URL de base par lui-même, peu importe si vous avez
/index.html
ou quoi que ce soit d'autre.la source
Divisez et rejoignez l'URL:
la source
Mettez-le dans votre en-tête, il sera donc disponible chaque fois que vous en aurez besoin.
Vous obtiendrez
http://localhost:81/your-path-file
ouhttp://localhost/your-path-file
.la source