1. 引言
jQuery 已被广泛使用,该 JavaScript 库封装了在 Web 开发中经常使用的 DOM 操作和事件处理功能。5月25日,jQuery 宣布发行了3.6.1版本。
2. jQuery 3.6.1 带来的改进
2.1. Bug 修复
在3.6.1版本中,jQuery 的核心开发者注意到某些上下文中使用事件属性会导致报错,已经进行了修复。
$(document).on("click", function(e) {
console.log(e.relatedTarget); // Uncaught TypeError: Invalid calling object
});
使用这样的代码可能会出现错误,如果元素是一个一元素框架,即使用 <iframe> etc. 在3.6.1中报错已经被修复。
如果你使用 jQuery 3.6.0 或更早版本,并在你的代码中使用类似上面的代码,那这个Bug可能会影响你。要修复这个问题,你需要更新 jQuery 版本。
此外,在3.6.1版本中,还修复了在 Safari 中访问 cross-origin frame 的问题,以及一些其他的小Bug。
2.2. 漏洞修复
在3.6.1版本中,jQuery 的开发者还修补了若干些安全漏洞:
#1756: CVE-2020-11022: 阻止扩展属性污染Object.prototype
#1923: CVE-2021-22884: 由 parseHTML 导致的跨站脚本攻击,可能会导致应用程序的安全漏洞
#1926: CVE-2021-22885: 由通过 .data() 注册的数据处理程序导致的跨站脚本攻击,也可能导致应用程序的安全漏洞
如果你使用了 jQuery,并且版本低于3.6.1,那么你可能会受到这些漏洞的影响。因此,为了安全起见,我们推荐你及时更新版本。
2.3. 其他重要更新
在3.6.1版本中,jQuery 新增了对 ES2021 功能的支持,包括 undefined 报告的使用上,以及 new.target 对象的特殊值持久化。
jQuery 3.6.1 还添加了可观察对象(Observable)处理事件,并在事件上手动 implement 时保留 timeStamps。
3. 如何获取和使用 jQuery 3.6.1
要获取 jQuery 3.6.1,你可以通过 CDN、npm 或下载 ZIP 文件的方式获得。
如果你使用的是 CDN 的方式,可以在 https://code.jquery.com/ 上找到最新的版本,同样也可以在 Maven Central 或其他 CDN 中找到。
如果使用是 npm 安装,可以运行以下命令,安装 jQuery 3.6.1:
npm install jquery@3.6.1
如果想要下载 zip 文件,请前往以下地址下载:
https://github.com/jquery/jquery/releases/tag/3.6.1
4. 总结
在 jQuery 3.6.1版本中,修复了一些重要的 Bug ,并解决了一些安全漏洞,并新增了对 ES2021 功能的支持以及可观察对象处理事件等更新。因此,我们建议您升级到这个版本来更好地优化您现有的应用程序。