西北
快速 CSS 选择器 API 引擎
NWSAPI是发展进步 海军少将 目标 选择器等级 4 符合规定。 它经过了彻底的重修,便于扩展和维护。 它是一个右到左选择器解析器和编译器,用纯 Javascript 书写,没有外部依赖性 。 它最初被认为是一个交叉浏览器库来改进事件授权和各个框架中的网页刮取,但它已经成为了较新的浏览器和无头环境中本地CSS选择和匹配功能的流行取而代之.
用这个 正则表达式 来解析 CSS 选择字符串和 元编程 将这些选择的字符串转换为 Javascript 函数解析器。 此进程只针对每个选择器字符串执行一次,允许对函数解析器进行记忆并实现无比的性能.
安装
将NWSAPI纳入标准网页:
<script type="text/javascript" src="nwsapi.js"></script>
将 NWSAPI 列入标准网页并自动替换本地的 QSA :
<script type="text/javascript" src="nwsapi.js" onload="NW.Dom.install()"></script>
使用 NWSAPI 与节点.js :
$ npm install nwsapi
NWSAPI目前支持浏览器(作为一个全局, NW.Dom)和无头环境(作为普通JS模块).
支持的选择器
以下是所有CSS2/CSS3/CSS4的列表 支持的选择者。 。 。 .
特征和遵守情况
你可以读更多关于NWSAPI的 特性和遵守情况 在维基百科上.
API 密码
DOM 选择
ancestor( selector, context, callback )
返回最近的祖先元素匹配的引用 selector,从 context. 回归 null 如果没有找到元素。 若为 callback 为匹配的元素而引用.
first( selector, context, callback )
返回第一个元素匹配的引用 selector,从 context. 回归 null 如果没有元素匹配。 若为 callback 为匹配的元素而引用.
match( selector, element, callback )
回返 true 若为 element 匹配 selector,从 context; 返回 false 否则。 若为 callback 为匹配的元素而引用.
select( selector, context, callback )
返回匹配的所有元素的数组 selector,从 context; 返回为空 Array 否则。 若为 callback ,每个匹配元素都引用它.
DOM 帮助者
byId( id, from )
返回带有标识的第一个元素的引用 id,可选择过滤到元素的后人 from。 。 。 .
byTag( tag, from )
返回带有指定标签名的元素数组 tag,可选择过滤到元素的后人 from。 。 。 .
byClass( class, from )
返回具有指定类名的元素数组 class,可选择过滤到元素的后人 from。 。 。 .
引擎配置
configure( options )
以下是当前可用的配置选项列表,它们的默认值和描述,它们是布尔标记,可以设定为 true 或者说 false数字 :
IDS_DUPES: true - 允许使用具有相同代号的多个元素的真伪, 虚假的不可允许LIVECACHE: 真实 - 对缓存结果和解析者都是真实的, 对缓存结果和解析者都是虚假的MIXEDCASE: true - 匹配标签名大小写不敏感, 虚假以匹配使用大小写敏感LOGERRORS: 真实 - 向控制台打印错误和警告的真实性
扩展基本功能的实例
configure( { <configuration-flag>: [ true | false ] } )
禁用日志错误/ 警告控制台, 不允许重复 ID 。 示例
NW.Dom.configure( { LOGERRORS: false, IDS_DUPES: false } );
注:无参数的 NW.Dom.confit () 返回当前配置.
registerCombinator( symbol, resolver )
在组合符表格中注册新符号及其匹配的解析器。 示例
NW.Dom.registerCombinator( '^', 'e.parentElement' );
registerOperator( symbol, resolver )
在属性运算符表中注册新符号及其匹配的解析器。 示例
NW.Dom.registerOperator( '!=', { p1: '^', p2: '$', p3: 'false' } );
registerSelector( name, rexp, func )
在选择器表格中注册新选择器、匹配的RE和解析器函数。 示例
NW.Dom.registerSelector('Controls', /^\:(control)(.*)/i,
(function(global) {
return function(match, source, mode, callback) {
var status = true;
source = 'if(/^(button|input|select|textarea)/i.test(e.nodeName)){' + source + '}';
return { 'source': source, 'status': status };
};
})(this));
支持和赞助
西北 每天有数百万个建筑、网络拆解机和测试套房——包括关键基础设施,例如: 日记。 。 。 .
保持零依赖性,超快CSS引擎,严格遵循不断发展的W3C选择器规格,需要大量时间,研究和测试. 如果NWSAPI帮助你的公司节省时间,建立特性,或者进行可靠的测试, 请考虑支持其持续维护!
为什么赞助?
- 对于开发者: 保持项目积极维护,无臭虫,并先于新的浏览器标准更新.
- 对于企业: 确保工具链中关键依赖者的稳定和长期安全.
帮助的方法
选择最适合您或您的组织的平台 :
- GitHub 赞助商数字 : 月级赞助直接在GitHub上.
- 开放集体数字 : 公开源码项目资金透明,企业支持理想.
- 帕特伦数字 : 每月定期提供支持,并给予支持者奖励.
- 高飞数字 : 快速一次性提示或经常性的微捐赠.
- 给我买杯咖啡数字 : 快速,临时一次性捐赠.
- 解放组织数字 : 经常性零费开源支持.
- 问题Hunt数字 : 资助特定特征或bug bountys.
自定义许可,专用支持,或优先bug修正也提供给公司赞助商. 随便你!