在用户脚本中使用querySelector()
vs jQuery有什么好处$()
吗?我希望该脚本在所有支持用户脚本的主流浏览器中都能工作,所以我对跨浏览器兼容性特别感兴趣。
我开始对此感到疑惑,因为我注意到Honestbleeps出色的Reddit Enhancement Suite包含jQuery 作为依赖项,但主要querySelector()
用于选择元素和其他用于DOM 操作的基本JavaScript 方法。
这只是品味问题,还是有理由将 jQuery 的使用保持在最低限度?
在用户脚本中使用querySelector()
vs jQuery有什么好处$()
吗?我希望该脚本在所有支持用户脚本的主流浏览器中都能工作,所以我对跨浏览器兼容性特别感兴趣。
我开始对此感到疑惑,因为我注意到Honestbleeps出色的Reddit Enhancement Suite包含jQuery 作为依赖项,但主要querySelector()
用于选择元素和其他用于DOM 操作的基本JavaScript 方法。
这只是品味问题,还是有理由将 jQuery 的使用保持在最低限度?
使用querySelector()
or的唯一原因querySelectorAll()
是您不使用 jQuery。与高级 CSS 选择器相比,jQuery 选择器更强大,并且更有可能在浏览器中始终如一地执行。
也就是说,包括 jQuery 会使简单的脚本不必要地复杂化。它需要在大多数浏览器上进行脚本注入——这会破坏沙盒,产生潜在的冲突,并使您的脚本依赖于第三方服务器。
这是一种包含 jQuery 的跨浏览器方法,可以最大限度地减少冲突。而且,如果浏览器支持本地 jQuery 副本,则不需要第三方服务器始终处于启动/快速状态。
如果脚本很简单并且您可以轻松避免使用 jQuery,请使用querySelector()
. 您的脚本将在所有支持脚本的浏览器上运行,99% 以上的时间。
如果脚本仍然加载 jQuery,请使用 jQuery 选择器以获得最大的功能和一致性。
请注意,除了最基本的 DOM 操作之外,jQuery 通常是物有所值的。对于 Firefox+Greasemonkey 或 Chrome+Tampermonkey,如果你使用 jQuery,几乎没有@require
缺点。
querySelector
某些浏览器版本不支持,而 jQuery支持$()
。