Firefox:Dive Into Greasemonkey/4.17. Matching case-insensitive attribute values
Mozilla中文Wiki
您的位置:Dive Into Greasemonkey → 公用模式 → 匹配不区分大小写的属性值
[编辑]
4.17. 匹配不区分大小写的属性值
在 HTML 中,许多属性的值是不区分大小写的,还有很多在首部和尾部包含空格。如果您想获得所有这样的值,您需要在您的 XPath 查询中使用一点技巧。
例子:获取所有”方法“属性是 "POST" 或 "post" 的表单
var postforms = document.evaluate(
"//form[translate(@method, 'POST ', 'post')='post']",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
本次 XPath 查询可以获取所有以 ”POST“ 方式提交的表单。首先,我们需要用 translate 函数将属性的值变成小写字母。(XPath 2.0 还有 lowercase 函数,但我一次都没有成功的用过它。)其次,我们需要将首部和尾部的空格去掉。我们可以将这个操作合并到 translate 函数中,只要在第一个参数之前加一个空格。因为在第二个参数中没有相应的字母,这样一来所有的空格就被去掉了。最后,我们就能将获取的属性值同 'post' 做比较。
[编辑]
实例
- ForceGet (http://diveintogreasemonkey.org/download/forceget.user.js)
获取当前域名 →
![[首页]](/stylesheets/images/wiki.png)