[Js/GreaseMonkey] Parser le d'un script

Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 1 juin 2007 à 09:29
 Jason - 6 oct. 2007 à 17:35
Bonjour,

Je suis en train de me faire un script GreaseMonkey et j'ai un petit
problème au niveau du javascript, donc au final pas avec greasemonkey.

Voilà, il existe en javascript plein de méthode pour avoir le style attaché à une balise, la valeur d'un formulaire etc...

Moi ce que j'aimerais c'est récupérer le code contenu dans une balise script.
Par exemple avec une page qui contient
<script language="javascript">var machin = 1;</script>


Je voudrais récupérer le texte var machin = 1 dans une variable.

J'ai essayé de parser tous les éléments de la page en utilisant leurs attributs outerHtml et outerText mais je ne récupère rien.

Quelqu'un aurait une idée?
A voir également:

4 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
1 juin 2007 à 11:50
Et .innerHTML ?

Sinon, si tu passes par du XPath, tu peux récupérer le contenu avec l'attribut text

Par exemple
//script[@language='javascript']/self::text
(syntaxe à vérifier !)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
1 juin 2007 à 11:54
Je crois que innerHtml n'est accessible qu'en écriture.

Je regarde cet apres-midi pour XPath, merci pour l'info...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
1 juin 2007 à 15:16
Bon je laisse tomber, je crois que la source de la page est trop tordue pour être examinée...
0
Bonjour,
Je ne comprend pas trop torp pourquoi tu voudrais récupéré le code contenu entre les <script></script> Mais bon, un code simplement fait du genre

var scContent, targetNodes;
targetNodes = document.getElementsByTagName("script");
for(i=0;i<targetNodes.length;i++){
        if(!targetNodes[i].src){
                scContent += targetNodes[i].innerHTML."\n";
        }
}


Ca devrait faire l'affaire, j'ai pas testé mais je suis confient...
0