javascript – 使用XPath读取输入的值,然后在Greasemonkey中使用

前端之家收集整理的这篇文章主要介绍了javascript – 使用XPath读取输入的值,然后在Greasemonkey中使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用这个XPath来获取一个字段的值:
//input[@type="hidden"][@name="val"]/@value

我得到几个结果,但我只想要第一个.运用

//input[@type="hidden"][@name="val"]/@value[1]

不行一旦我有这个,我如何在Greasemonkey中获取价值?我正在尝试像:

alert("val " + val.snapshotItem);

但是我认为这是针对节点而不是字符串.

解决方法

对于XPath,请尝试:
//input[@type="hidden" and @name="val" and position() = 1]/@value

要在GreaseMonkey脚本中使用,请执行以下操作:

var result = document.evaluate(
  "//input[@type='hidden' and @name='var' and position()=1]/@value",document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null
);

var hiddenval = result.snapshotItem(0);

if (hiddenval)
  alert("Found: " + hiddenval.nodeValue);  
else
  alert("Not found.");

严格来说:在XPath过滤器中使用“position()= 1”不是绝对必要的,因为只有第一个返回的结果将被使用(通过snapshotItem(0)).但是为什么要建立比你真正需要的更大的结果集.

编辑:使用ORDERED_NODE_SNAPSHOT_TYPE类型的XPath结果确保以文档顺序获取节点.这意味着结果的第一个节点也将是文档中的第一个节点.

猜你在找的JavaScript相关文章