La lecture de la valeur de l'entrée à l'aide de XPath, puis à l'aide de Greasemonkey
Je suis en utilisant ce XPath pour obtenir la valeur d'un champ:
//input[@type="hidden"][@name="val"]/@value
- Je obtenir plusieurs résultats, mais je veux seulement le premier. À l'aide de
//input[@type="hidden"][@name="val"]/@value[1]
Ne fonctionne pas. Une fois que j'ai cela, comment puis-je récupérer la valeur dans Greasemonkey? Je suis en train d'essayer des choses comme:
alert("val " + val.snapshotItem);
Mais je pense que c'est pour le nœud, plutôt que de la chaîne.
OriginalL'auteur | 2008-11-05
Vous devez vous connecter pour publier un commentaire.
Pour le XPath, essayez:
Pour une utilisation dans un script GreaseMonkey, faire quelque chose comme ceci:
À proprement parler: à l'Aide de
"position()=1"
dans le filtre XPath n'est pas absolument nécessaire, car seul le premier résultat retourné est va être utilisé de toute façon (viasnapshotItem(0)
). Mais pourquoi de construire un plus grand ensemble de résultats que vous avez vraiment besoin.EDIT: à l'Aide d'un XPath résultat de la
ORDERED_NODE_SNAPSHOT_TYPE
type permet de s'assurer que vous obtenez les nœuds dans l'ordre du document. Cela signifie que le premier nœud de la suite sera aussi le premier nœud dans le document.OriginalL'auteur Tomalak
Tomalak a la bonne idée, mais je le ferais un peu différemment.
De cette façon, vous êtes en précisant dans le cadre de la ensemble de résultats que vous voulez un seul article retourné (le premier dans le document, dans ce cas). Ici aussi, vous êtes à l'extraction de l'arbre DOM et puis la lecture de son
value
propriété afin d'obtenir la valeur. J'ai trouvé que c'était plus fiable que l'extraction d'une chaîne de valeur par le biais du XPath (si votre kilométrage peut varier).OriginalL'auteur savetheclocktower
Une possibilité consiste à inclure jQuery dans vos scripts. Cela permettra de fournir une syntaxe plus simple pour accéder à des éléments.
OriginalL'auteur Daniel X Moore