Maison >interface Web >js tutoriel >Comment utiliser la balise A pour obtenir le chemin absolu du répertoire courant dans les astuces Javascript_javascript

Comment utiliser la balise A pour obtenir le chemin absolu du répertoire courant dans les astuces Javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:11:441782parcourir

Quand il s'agit de problèmes liés au chemin, tout le monde pensera à window.location En effet, cet objet fournit pas mal d'informations sur le chemin, parmi lesquelles celles couramment utilisées incluent :

.

1.location.href : L'URL complète de la page actuelle
2.location.pathname : Le nom du chemin dans l'URL actuelle
3.location.hash : point d'ancrage
dans l'URL actuelle 4.location.search : paramètres de requête dans l'URL actuelle

Cependant, location n'a pas d'attribut permettant d'obtenir directement le chemin absolu du répertoire courant (hors nom de fichier). Grâce à Google, j'ai trouvé de mauvaises méthodes, telles que séparer l'URL dans un tableau via "/", supprimer le dernier élément du tableau puis le concaténer dans une chaîne. Mais si le nom du fichier n'est pas spécifié dans l'URL, le résultat est complètement faux.

Sur la base de l'expérience de codage passée, l'attribut href de l'élément a renverra toujours un chemin absolu, ce qui signifie qu'il a la capacité de convertir les chemins relatifs en chemins absolus. Je l'ai essayé en utilisant le code suivant, et cela a fonctionné :

Copier le code Le code est le suivant :

var a = document.createElement('a');
a.href = './';
alerte(a.href);
a = nul;

Malheureusement, cette méthode n'est pas valide sous l'ancien IE 6/7. Lorsque alert(a.href) est exécuté, "./" apparaît toujours. Plus tard, j'ai découvert que quelqu'un avait également posé cette question sur Stackoverflow, et la solution était très simple. Il suffit d'injecter un via innerHTML :
.
Copier le code Le code est le suivant :

var div = document.createElement('div');
div.innerHTML = '";
alerte(div.firstChild.href);
div = nul;

Quelqu’un pourrait se demander : pourquoi ne pas utiliser des expressions régulières ? Ma réponse est la suivante : vous devez déterminer s'il existe un nom de fichier, s'il existe un point d'ancrage et s'il existe des paramètres de requête. Cette expression régulière peut être assez compliquée.
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn