77 votes

Comment obtenir le contenu du fichier spécifié comme 'src' d'une balise <script> ?

Si j'ai une balise script comme ceci :

<script
    id = "myscript"
    src = "http://www.example.com/script.js"
    type = "text/javascript">
</script>

Je voudrais obtenir le contenu du fichier "script.js". Je pense à quelque chose comme document.getElementById("myscript").text mais cela ne fonctionne pas dans ce cas.

0 votes

J'ai du mal à comprendre pourquoi vous devez accéder au contenu ? Pouvez-vous donner quelques informations sur ce que vous comptez en faire ?

0 votes

Où le mettriez-vous en cachette ? Je veux dire, comment feriez-vous pour que vos données en cache persistent au-delà de la durée de vie du script tel que chargé dans la page ?

0 votes

Markus : Je vous recommande d'ajouter une clarification à votre question, sinon vous obtiendrez des réponses de la même veine que celles ci-dessous :)

11voto

Lasar Points 2008

Voulez-vous obtenir le contenu du fichier http://www.example.com/script.js ? Si c'est le cas, vous pouvez utiliser les méthodes AJAX pour récupérer son contenu, en supposant qu'il se trouve sur le même serveur que la page elle-même.

2 votes

Je veux stocker le contenu du script afin de pouvoir le mettre en cache et l'utiliser directement quelque temps plus tard sans avoir à aller le chercher sur le serveur web externe (pas sur le même serveur que la page).

9 votes

Si oui, ne vous inquiétez pas, le navigateur gère lui-même la mise en cache des scripts JS externes.

1 votes

@Gizmo alors pourquoi Google met-il en cache les scripts dans le stockage local ? La mise en cache par le navigateur n'est pas fiable.

5voto

Dan Goldstein Points 8940

Je ne pense pas que le contenu sera disponible via le DOM. Vous pourriez obtenir la valeur de l'attribut src et utiliser AJAX pour demander le fichier au serveur.

0voto

olle Points 933

Si vous voulez le contenu de l'attribut src, vous devez faire une requête ajax et regarder le responsetext. Si vous vouliez avoir le js entre et vous pourriez y accéder par innerHTML.

Cela pourrait être intéressant : http://ejohn.org/blog/degrading-script-tags/

0voto

airportyh Points 7912

.text vous a permis d'obtenir le contenu de la balise, c'est juste que vous n'avez rien entre votre balise d'ouverture et votre balise de fin. Vous pouvez obtenir l'attribut src de l'élément en utilisant .src, et ensuite si vous voulez obtenir le fichier javascript, vous devez suivre le lien et faire une requête ajax.

-3voto

Quentin Points 325526

Si un attribut src est fourni, les agents utilisateurs sont nécessaire pour ignorer le contenu de l'élément Si vous devez y accéder à partir du script externe, alors vous faites probablement quelque chose de mal.

Mise à jour : je vois que vous avez ajouté un commentaire indiquant que vous voulez mettre en cache le script et l'utiliser plus tard. Dans quel but ? En supposant que votre HTTP est compatible avec le cache alors vos besoins en matière de mise en cache sont probablement déjà pris en charge par le navigateur.

2 votes

Voici un scénario. Une page ajoute du contenu avec jsonp. Je veux qu'une extension utilise ce contenu afin d'ajouter plus d'informations. Maintenant, je peux suivre les événements d'ajout de jsonp lorsque je surveille DOMSubtreeModified, mais je ne peux pas accéder à la source (qui contient seulement un appel de fonction avec du json).

0 votes

@AndriusBentkus - Si vous avez une nouvelle question, poser une nouvelle question .

2 votes

J'ai exactement la même question, je viens de vous donner un scénario où sa question a un sens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X