javascript obtenir le chemin du fichier script actuel
Comment puis-je obtenir le chemin d'accès du script en javascript à l'aide de jQuery
par exemple, j'ai site.com/js/script.js
et il y a un code dans ce script:
$(document).ready(function() {
alert( ... this code ... );
}
Il Doit retourner la boite d'alerte "/js/script.js" message. Cette fonction devrait fonctionner comme par magie __FILE__
constante en php
Alors, pourquoi ai-je besoin?
Je veux mettre l'image de fond de manière dynamique:
$("somediv").css("background-image", "url(" + $SCRIPT_PATH + "/images/img.png)");
et de répertoire d'images est le /js
répertoire, près de la script.js
fichier
et js
nom du dossier peut être de définir de façon dynamique, afin de script et les images peuvent être dans le /myprogect/javascript-files
répertoire
source d'informationauteur pleerock
Vous devez vous connecter pour publier un commentaire.
Vous pouvez compter sur le fait que chaque élément
<script>
de l'élément doit être évalué* avant la prochaine est inséré dans le DOM.Cela signifie que le script actuellement évalué (tant qu'il est une partie de votre balisage et non insérés dynamiquement) sera le dernier de la
NodeList
récupéré avecgetElementsByTagName( 'script' )
.Cela vous permet de lire que des éléments attribut src et de déterminer le dossier que le script est servi du comme ceci:
J'ai essayé cette technique avec 3 scripts chargés de différents dossiers et obtenir cette sortie
* de Jean Resigs blog lié ci-dessus
Mise à jour
Comme pimvdb des points cela ne fonctionne que le script est en cours d'évaluation. Vous aurez besoin de stocker le chemin d'accès en quelque sorte, si vous allez l'utiliser plus tard. Vous ne pouvez pas interroger les DOM à un moment plus tard. Si vous utilisez le même extrait pour chaque script, la valeur de
scriptFolder
sera remplacé pour chaque script. Vous devriez donner à chaque script d'une variable unique, peut-être?D'emballage de votre script dans son propre champ d'application se ferme au-dessus de la valeur de
scriptFolder
de le rendre disponible pour le reste du script, sans crainte d'être écraséC'est à peu près impossible, pour diverses à la sécurité et au bon sens des motifs, mais voici comment vous pouvez le faire avec Ajax 🙂
Voir pourquoi on pourrait ne pas vouloir le faire? S'il vous plaît ne pas, à moins que vous avez une très bonne raison de le faire.
Je ne pense pas que jQuery fournir une telle fonctionnalité.
De toute façon, vous pouvez obtenir currentc script chemin chemin (à la fois entièrement http et relative) par la lecture de la réponse ici: Qu'est-ce que mon script src URL?
Ne pouvez pas vous définissez un type de variable de chemin d'accès dans le js? Ainsi, vous enregistrez le chemin d'accès du fichier dans le fichier lui-même.
Par exemple: