jQuery 1.6.3 RC1 发布

发布于 作者

jQuery 1.6.3 即将发布!我们需要您的帮助来测试这个发布候选版本,以确保一切正常。

请随意通过包含以下两个文件之一(一个压缩版,一个未压缩版)进行测试。我们首选的测试用例平台是 jsFiddle;您可以在那里使用“jQuery (edge)”选项。如果您需要报告错误并且无法使用 jsFiddle,请使用未压缩版本和您的测试用例。

请使用您最珍贵的代码测试此版本。如果您发现与 1.6.2 相比的重要差异,请尽快 提交错误报告,并务必说明您正在测试 jQuery 1.6.3 RC1。

如果您正在从旧版本的 jQuery 大幅升级,您发现的差异可能是由于在主要版本发布中引入的已记录行为更改造成的。首先使用已发布的 1.6.2 版本检查您的代码,以确保问题仅存在于 1.6.3 RC1 中。

亮点

修复一个 跨站脚本攻击 (XSS) 漏洞: 用户 ma.la 报告了一种许多网站都在使用的常见模式,用于使用 location.hash 选择元素,该模式允许某人将脚本注入到页面中。这种做法似乎非常普遍,因此我们决定修改选择器识别,以防止最常见情况下的脚本注入。传递给 $() 的任何字符串如果在其前面带有“#”字符,则不能包含 HTML 标签(因此不包含脚本)。有关更多信息和测试用例,请参阅上面链接的票证。

不再出现动画“虫洞”: 当我们在版本 1.6 中添加支持时,我们对浏览器的 requestAnimationFrame API 寄予厚望。然而,此后我们收到的最高数量的投诉与 requestAnimationFrame 在选项卡不可见时表现的方式有关。当选项卡不可见时启动的所有动画都会“堆积”并且不会在选项卡恢复焦点时执行。然后它们都以极快的速度动画!我们已删除对该 API 的支持(这不会影响您调用 jQuery 动画功能的方式),并计划将其合并到 jQuery 的未来版本中。

更好地处理 HTML5 数据属性名称: $().data() API 承担双重职责,处理 jQuery 和插件的内部用途的数据,以及读取 HTML5 data- 属性的初始值。我们改进了使用 HTML5 约定(例如在需要时将 camel-case 转换为 camelCase)的能力。但是,请记住,$().data() API 仅读取 HTML5 data- 属性的初始值,并且出于性能原因,不会将后续的数据更改与属性同步。要更新 HTML 标记中的实际属性,请使用 .attr()

jQuery 1.6.3 变更日志

1.6.3 版本的当前变更日志

Ajax

  • #9255:jQuery.parseXML 错误处理在 webkit 浏览器中不起作用
  • #9854:传递 statusText 而不是“标准化”它
  • #9887:jQuery.ajaxSetup 可能会导致不必要的内存使用
  • #9970:ajax.js 中的错别字:status 应该是 jqXHR.status?
  • #10098:编码类似注释的 Accept 标头,以避免移动运营商的篡改

属性

  • #9630:foo.contents().hasClass() 返回不正确的值
  • #9699:removeAttr(‘style’) 在 webkit 中不能始终删除 style 属性
  • #9719:removeAttr(‘disabled’) 不会更改 IE6 中的输入颜色
  • #9979:.prop(‘tabIndex’) 返回不一致的结果,对于尚未设置 tabIndex 的元素
  • #9980:简化 attr 代码,在 IE6/7 中对所有内容使用 getAttributeNode

构建

  • #9988:压缩 jQuery 中的最小许可标头

核心

  • #9521:使用 $(location.hash) 和 $(#) 的 XSS) 是否需要?
  • #9897:try-catch isPlainObject 检测
  • #10076:$.inArray 在第二参数为 `null` 或 `undefined` 时崩溃 IE6 和 Chrome

CSS

  • #6652:动画后删除 filter:alpha(opacity=100)
  • #9572:.css() 方法中支持 -ms-transform
  • #10021:无法使用 .css() 和 .animate() 使用相对值语法添加负数

数据

  • #8235:jQuery.data 在某些情况下会引发脚本错误
  • #9318:HTML5 数据属性在属性名称包含数字时行为奇怪
  • #9413:$.fn.removeData 无法删除名称中带有破折号的数据
  • #9779:允许对数据属性值进行非 null|undefined 评估
  • #9794:jQuery.fn.data() 正确处理对任意数据属性值的访问
  • #10016:无法使用 jQuery.data 方法检索“假值”值,这些值位于带有破折号的键名下
  • #10080:从框架的窗口卸载在 IE8 中中断

Dimensions

  • #10123:.width() 可以在 Firefox 6 中返回浮点数

Effects

  • #9381:动画在浏览器失去焦点时由于 requestAnimationFrame 而停止
  • #9678:动画清除 setInterval

事件

  • #7071:在提交特殊处理程序期间访问 VML 元素上的“type”属性失败

操作

  • #9587:克隆带有对象的 div 会在 IE8 中导致错误

支持

  • #9634:support.js 初始化期间左上角可见的“t”字符
  • #9823:IE 8 在 css 中对 BODY 使用 background-image 时崩溃
  • #9964:test/support.js 模块 strictEqual 错别字
  • #10029:$.support.scriptEval 已删除,但仍包含在文档中

如果您发现问题,请尽快提交包含测试用例的错误报告,如上所述。博客评论或 Twitter 不是有用的错误报告!