Passer les vars à JavaScript via l'attribut SRC
Dans mon fichier HTML j'ai lié à la JS avec:
src="myscript.js?config=true"
Mon JS lire directement la valeur de cette variable comme ceci?
alert (config);
Cela ne fonctionne pas, et la Console d'Erreur de FireFox dit "config n'est pas défini". Comment puis-je lire les vars passées par l'intermédiaire de l'attribut src dans le fichier JS? C'est ce simple?
source d'informationauteur Robinicks
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas passer des variables JS la façon dont vous avez essayé. Balise de SCRIPT n'est pas de créer un objet de la Fenêtre (qui a une chaîne de requête), et il n'est pas côté serveur code.
Oui, vous pouvez, mais vous avez besoin de connaître précisément le nom du fichier de script dans le script :
Vous avez maintenant une "options" de la variable qui a les arguments passés. Je n'ai pas le tester, je l'ai changé un peu de http://code.google.com/p/canvas-text/source/browse/trunk/canvas.text.js où elle travaille.
Vous pourriez avoir vu cette façon de faire, mais vraiment dans le fichier JS est prétraité à côté serveur à l'aide de PHP ou un autre langage premier. Le côté serveur de code d'impression/l'écho de l'javascript avec le jeu de variables. J'ai vu un script service d'annonces de le faire avant, et il m'a fait regarder voir si cela peut être fait avec plain ol' js, mais il ne peut pas.
Vous avez besoin d'utiliser le Javascript pour trouver l'attribut src de l'script et analyser les variables après le '?'. À l'aide de la Prototype.js cadre, il semble quelque chose comme ceci:
Mon Javascript/RegEx compétences sont rouillées, mais c'est l'idée générale. Déchiré directement à partir de la scriptaculous.js fichier!
Votre script peut cependant trouver son propre script de nœud et d'examiner l'attribut src et d'en extraire toutes les informations que vous souhaitez.
Si oui ou non ce qui DEVRAIT être fait, c'est une bonne question, mais si vous voulez le faire, http://feather.elektrum.org/book/src.html vraiment montre comment faire. En supposant que votre navigateur bloque lors du rendu des balises de script (actuellement le cas, mais peut-être pas d'avenir), le script en question est toujours la dernière script sur la page jusqu'à ce point.
Ensuite à l'aide d'un cadre de travail et d'un plugin comme jQuery et http://plugins.jquery.com/project/parseQuery cela devient assez trivial. Surpris il n'y a pas un plugin pour cela.
Est en quelque sorte liée est John Resig dégradants de balises de script, mais qui exécute le code APRÈS le script externe, et ne faisant pas partie de l'initialisation: http://ejohn.org/blog/degrading-script-tags/
Crédits: Passage de paramètres pour les fichiers JavaScript , Passage de paramètres pour les fichiers JavaScript
L'utilisation de variables globales n'est pas une sorte de nettoyer ou de solution de sécurité, au lieu de cela, vous pouvez utiliser les données-X attributs, il est plus propre et plus sûr:
De myfile.js vous pouvez accéder aux paramètres de données, par exemple avec jQuery:
Évidemment "monfichier.est" et "parameter_1" ont pour correspondre à la 2 sources 😉