jQuery 1.6.3 发布

发布时间: 作者:

jQuery 1.6.3 现已发布!这是基于 jQuery 1.6 的第三个次要版本,包含了一些针对 bug 的修复,如下所示。

与往常一样,我们提供了两个版本的 jQuery,一个压缩版,另一个未压缩版(用于调试或阅读)。

您可以通过将代码放入您现有的应用程序中,并告诉我们是否有任何内容不再正常工作,来帮助我们。请提交 bug 报告,并确保您提到了您是在 jQuery 1.6.3 下测试的。

非常感谢所有报告 bug、提交补丁以及为本次发布提供帮助的人员!我们希望鼓励社区中的每个人参与进来,为 jQuery 核心做出贡献。我们已经设置了一个完整页面的信息,专门用于帮助您更多地参与团队。团队就在这里,随时准备帮助您帮助我们!

重点

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

不再出现动画“虫洞” 当我们在 1.6 版本中添加支持时,我们对浏览器的requestAnimationFrame API 抱有很高的期望。然而,我们自那以后收到的抱怨中最多的问题之一是requestAnimationFrame 在选项卡不可见时如何工作。所有在选项卡不可见时启动的动画都会“堆叠”,并且直到选项卡恢复焦点时才会执行。然后它们会以超高速动画!我们已经删除了对该 API 的支持(这对您调用 jQuery 的动画功能的方式没有影响),并计划将其整合到 jQuery 的未来版本中。

更好的 HTML5 数据属性名称处理:$().data() API 同时处理 jQuery 和插件的内部使用的数据,以及读取 HTML5data- 属性的初始值。我们改进了使用 HTML5 约定(例如,根据需要将camel-case 转换为camelCase)的能力。但是,请记住,$().data() API 仅在最初读取 HTML5data- 属性,出于性能原因,不会将后续数据更改与属性同步。要更新 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:通过在 IE6/7 中对所有内容使用 getAttributeNode 来简化 attr 代码

构建

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

核心

  • #9521:使用 $(location.hash) 和 $(#) 的 XSS 漏洞
  • #9897:try-catch isPlainObject 检测
  • #10076:如果第二个参数是 `null` 或 `undefined`,则 $.inArray 会在 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 中中断

尺寸

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

效果

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

事件

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

操作

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

支持

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

如果您发现问题,请尽快提交包含测试用例的 bug 报告,如上所述。博客评论或 Twitter 无法帮助您提交 bug 报告!

关于“jQuery 1.6.3 发布”的 28 个想法

  1. 这个版本的压缩版通过 gzip 传输时,体积缩小了 4 字节。我把它列入胜利清单。

  2. Häääns 说:

    很遗憾 requestAnimationFrame 存在这种有问题的“虫洞”。希望浏览器厂商能够修复这个问题,以便我们能够从中获益。

  3. Ron Otten 说:

    @Häääns

    问题在于不专业的开发者和使用 jQuery 动画 API 的遗留 jQuery 插件。修复 rAF 的唯一方法是移除它提供的全部益处,将其简化为等效于 setInterval 的功能。

  4. Timothy Zhu 说:

    谢谢。升级后没有发现任何问题。主页没有更新以反映新版本的原因是什么?

  5. (找不到其他地方提及。关于 Konami 代码的 YouTube 视频已删除。有希望替换它吗?谢谢!欢呼!)

  6. 我之前没有意识到这个新版本发布了,因为我通常只查看这个网站的主页。决定查看博客,哇!

  7. 酷!修复列表也很不错。

    难道你不应该也更新主页和下载页面等等吗?已经 6 天了 :-?

  8. Dave McDermott 说:

    是的,我完全错过了这次发布。

    主页仍然显示 v1.6.2,正如其他人已经提到的。

  9. 我看到 `datetime-local` 字段现在可以正确地进行 `serialize` 了。太棒了,再也不用笨拙的解决方法了 :-)

  10. 我非常喜欢 Jquery。

    我不知道是否是代码问题,但在 IE 浏览器和 Firefox 中仍然存在内存泄漏。在 Google Chrome 中,我注意到一切正常。
    如果这个问题在将来的版本中得到解决,我会非常高兴。

    非常感谢您

  11. Doctor Rudolf 说:

    只有我一个人在 IE8 中遇到问题吗?

    它返回 “undefined”。

    在 1.6.3 之前,它返回 “”。

    试试看

    然后在 IE8 中 - URL - 字段:javascript:alert($(‘#aaa’).attr(‘myattribute’))

  12. Doctor Rudolf 说:

    代码来了
    html
    head
    script type=”text/javascript” src=”https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.6.3/jquery.min.js”/script
    /head
    body
    form id=”form1″
    input id=”aaa” myattribute=””/
    /form
    /body
    /html

  13. Game Changer DNA Dan Kennedy 说:

    很棒的评论。衷心感谢大多数网站访问者以及作者。我喜欢这个网站

  14. Greg Benedict 说:

    非常感谢找出错误 #9823 的人。我们几个月来一直认为是 IE 8 的插件或安装问题导致了随机崩溃。

    自从更新后,我们再也没有遇到崩溃。