11489 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Jusqu'à maintenant, pour récupérer un nom de domaine, j'utilisais :
var $domainName = location.protocol + '//' + location.host;

Puis dans le lien javascript :
+$domainName+

Cette solution marche très bien pour créer des liens absolus en javascript.

Mais j'aimerais que mes scripts fonctionnent autant sur un nom de domaine que sur un sous dossier, notamment pour les adresses en local (genre : -http://localhost:8888/testPourUnSite/).

J'aimerai donc récupérer la valeur de ma balise html <base> via javascript. Comment faire ?

D'avance, merci.
Modérateur
Bonjour

Pour avoir le contenu en JS quelque chose du genre devrait correspondre.

var baseMarkup = document.getElementsByTagName('base');
var base = '';
if (baseMarkup.length > 0){
  base = baseMarkup[0].getAttribute('href');
}
else {
  base = location.protocol + '//' + location.host;
}


Après travailler avec des sous-dossiers et utiliser <base> peut mener à pleins de désagrément. Il est en effet plus propre et simple d'utiliser des hôtes virtuels. Je vois que vous travaillez apparemment avec MAMP. La version pro gère de manière simple les hôtes virtuels, sinon on peut le faire aussi sur la version gratuite en configurant un peu soi-même.
Modifié par kustolovic (19 Mar 2014 - 11:16)
Alors là, vraiment, merci à vous tous :

- à Kustolovic, Niuxe et Zelalsan, qui m'avez donné la solution en js, avec jQuery en prime,
- à vous aussi Totopsy, qui m'avez entrouvert une notion que je ne connaissais pas : le vhost.

Je retiens pour l'instant les solutions javascript/jQuery pour leur souplesse d'utilisation, mais j'entrevois les avantages du vhost qui doit se révéler très intéressant dans certains cas.

Ça vaut le coup de poser une question sur le forum de temps à autre. "Google est notre ami", encore faut-il taper les bons mots clefs...

Sujet résolu. Bien à vous tous.