jQuery 3.6.0 发布!

发布于 作者

jQuery 3.6.0 已发布!在 jQuery 3.5.0 中,主要变化是 html prefilter 的安全修复。此版本不包含安全修复,但包含一些不错的错误修复和改进。我们仍然关注 jQuery 4.0 的发布,但在此之前,我们将继续支持 3.x 分支并解决重要问题。

像往常一样,该版本可在 我们的 cdn 和 npm 包管理器上获得。其他第三方 CDN 可能也会很快提供它,但请记住,我们无法控制他们的发布计划,他们需要一些时间。以下是 jQuery 3.6.0 的亮点

即使对于 JSONP 错误也返回 JSON

您可能已经从次版本号猜到,此版本中偷偷加入了一个功能。在以前的版本中,当 JSONP 请求响应错误时,响应通常仍然是一个可执行脚本。我们更改了默认行为,在这种情况下尝试执行响应。遇到错误时,常规脚本仍然会被跳过。有关更多信息,请参阅 gh-4771

修复

值得强调的一个错误与 在 focus 处理程序中将焦点重定向到另一个元素 有关。以下是一个 focus 处理程序在另一个 focus 处理程序内部触发的示例

elem1.on( "focus", function() {
  elem2.trigger( "focus" );
} );

由于在 IE 之外的所有地方同步的性质,3.4.0 中添加的利用原生事件的修复导致初始元素的原生 .focus() 方法最后被调用,从而夺回焦点。虽然代码继续利用原生 focus 和 blur 事件,但我们能够通过与原生方法更加一致并仅将最后一个 focus 事件向上传播到 DOM 树来修复此问题。

其他错误修复和改进包括修复了 在 Firefox 中检索表格行尺寸 的错误,修复了 在 Chrome 中触发已删除元素上的 focusout 事件时发生的崩溃,对一些测试进行了多项改进等等。您可以在下面找到完整的变更日志。

升级

除了不再确保与 XHTML 兼容的标签外,我们预计从 jQuery 3.0+ 版本升级时不会出现其他兼容性问题。要升级,请查看新的 3.5 升级指南。如果您尚未升级到 jQuery 3+,请先查看 3.0 升级指南

jQuery Migrate 插件 将帮助您识别代码中的兼容性问题。请尝试这个新版本,并 告知我们您遇到的任何问题

如果您还无法升级到 3.5+,Daniel Ruf 已经提供了 先前 jQuery 版本的补丁

下载

您可以从 jQuery CDN 获取文件,或直接链接到它们

https://code.jqueryjs.cn/jquery-3.6.0.js

https://code.jqueryjs.cn/jquery-3.6.0.min.js

您也可以从 npm 获取此版本

npm install jquery@3.6.0

精简版

有时您不需要 ajax,或者您更喜欢使用许多专注于 ajax 请求的独立库。而且,通常使用 CSS 和类操作进行 Web 动画更简单。除了包含 ajax 和效果模块的常规 jQuery 版本之外,我们还发布了一个“精简”版本,该版本排除了这些模块。如今,jQuery 的大小很少成为加载性能问题,但精简版本比常规版本小约 6k 压缩字节。这些文件也可用在 npm 包和 CDN 上

https://code.jqueryjs.cn/jquery-3.6.0.slim.js

https://code.jqueryjs.cn/jquery-3.6.0.slim.min.js

这些更新已经作为 npm 和 Bower 上的当前版本提供。有关获取 jQuery 的所有方式的信息,请访问 https://jquery.org.cn/download/。公共 CDN 今天会收到其副本,请给它们几天时间来发布文件。如果您急于开始,请使用我们 CDN 上的文件,直到它们有机会更新为止。

感谢

感谢所有参与此版本发布的人员,包括提交补丁、报告错误或进行测试的人员,包括 Dallas FraserMichal Golebiowski-OwczarekWonseop KimWonhyoung ParkBeatriz RezenerNatalia Sroka 以及整个 jQuery 团队。

变更日志

完整变更日志:3.6.0

Ajax

  • 执行 JSONP 错误脚本响应 (#4771, 3bae54aa)

核心

  • 报告 parseXML 中的浏览器错误 (#4784, 54d98835)
  • 为 jQuery 3.x 恢复 QtWebKit 支持 (#4756, bf1430a7)

Deferred

  • 将 master 重命名为 primary (15b62a2e)

Dimensions

  • 修改可靠的 trDimensions 支持测试以考虑 FF (#4529, bcd40aa7)

文档

  • 将 JS Foundation 提及更改为 OpenJS Foundation (db43ef0b)

事件

  • 使 focus 重新触发不将焦点返回到原始元素 (#4382, 2fadbc0a)
  • 不要在移除元素时在 blur 上崩溃 (#4417, aaf9c55a)
  • 删除 event.which shim (#3235, 2bf9793e)

选择器

  • 将 Sizzle 从 2.3.5 更新到 2.3.6 (#4782, 16548740)

支持

  • 确保支持 div 的显示设置为块 (#4844) (#4832, f8bdb127)

Tests

  • 修复不自动执行没有 dataType 的脚本的测试 (7298e04f)
  • 跳过 Legacy Edge 中的 jQuery.parseXML 错误报告测试 (bf06dd47)
  • 修复 jQuery.parseXML 错误报告测试 (1ec36332)
  • 识别 Node.js 模拟服务器中带有点的回调 (4c572a7f)
  • 跳过 Safari 中的“jQuery.ajax() 在卸载时”测试 (4f016c64)
  • 删除未使用的局部变量 (beea433d)
  • 删除过时的 jQuery.cache 引用 (5e028c76)
  • 删除过时的 jQuery 数据测试 (8ad78cdb)