Obtenez de BASE en HTML (après qu'elle a été définie, mais de ne pas utiliser une URL de page
La base est de définir de façon dynamique en php quand une page HTML est construit:
$base_line = '<base href="' . $some_path . '/" /> ';
echo $base_line;
Maintenant que je suis dans la page HTML j'ai besoin d'accéder à cette information ($some_path) et après avoir cherché pendant quelques heures j'ai pas l'impression de trouver une réponse. Veuillez noter que la page HTML chargée a une URL qui n'est pas liée à la base et je n'ai pas accès à du code PHP à modifier. Le chargement de la page pourrait avoir une URL du type: http://xyz.com/index.php, mais tous les autres liens de la page sera basé sur la valeur définie par la base, donc je ne peux pas obtenir la base à l'aide de l'URL de la page.
Je suppose que j'ai pu saisir l'un des éléments comme une image et de le disséquer à l'aide de DOM pour trouver la base, mais il devrait y avoir un moyen plus facile de le faire. Des idées?
À l'aide de la fenêtre.localisation ne fonctionne pas dans cette situation, car il sera de retour ce qui est lié à la chargé URL de la page et non pas ce qui a été défini comme base.
document.getElementsByTagName('base')
? En tout cas, BASE
est quelque chose que vous devriez essayer d'éviter. Il a des effets étranges dans différents navigateurs, y compris en essayant de charger le JS deux fois à partir de la BASE et non de BASE.
OriginalL'auteur Rasul | 2012-12-12
Vous devez vous connecter pour publier un commentaire.
Si vous voulez obtenir la valeur de l'élément de base, vous pouvez faire quelque chose comme:
Ou pour être un peu plus sûr:
Mise à jour: d'une manière plus concise serait:
baseHref
peut être nulle si elle n'a pas un<base>
.Je voudrais juste attribuer un id à l'
<base>
comme<base id="myBase" href="..."/>
et puisdocument.getElementById('myBase').href
.Pourquoi voudriez-vous ajouter un petit unncessary HTML?
OriginalL'auteur samanime
Pas besoin de jquery, jqlite ou obsolètes Api. Utiliser la plus récente
querySelector
API:voir ce caniuse.com/#search=querySelector
OriginalL'auteur Nelo Mitranim
Un problème que j'ai rencontré est que l'utilisation de
element.href
ne revient pas exactement à ce qui est. Par exemple, si vous avez ceci:Puis
element.href
vous donnera:J'ai trouvé que vous pouvez éviter cela en utilisant jQuery
attr
fonction:Si vous voulez éviter de jQuery, vous pouvez également utiliser le
getAttribute
fonction:OriginalL'auteur jchavannes
Vous pouvez essayer d'utiliser javascript
window.location.hostname
si vous n'avez pas accès au PHPSi vous voulez quelque chose comme
Que ces 3 choses vient en action
Vous pouvez regarder ce l'article pour une url de base de la fonction
que serait le retour à la base pour la page n'est pas ce qui est prévu à la base.
Vous avez besoin de la base de domaine, droit?
Je sais que cela pourrait être déroutant, mais j'essaie: je veux que la base EST DÉFINIE DANS L'en-TÊTE DE LA PAGE en cours et non pas la base de l'URL de la page. Vous pouvez charger une page xyz.com/test.php, mais le réglage de la base dans la page de .d'autres.domaine et avoir tous les liens relatifs à votre test.php pour être servi par ce qui est définie dans la base. J'espère que cela efface 🙂
OriginalL'auteur Mr. Alien
Si vous utilisez jqLite(angularjs par défaut), le code ressemble à:
Voir angulaire document pour plus de détails.
D'une manière plus concise si vous utilisez angulaire:
base = $document.find('base').attr('href')
OriginalL'auteur hao