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 中返回浮点数
效果
事件
- #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 报告!
这个版本的压缩版通过 gzip 传输时,体积缩小了 4 字节。我把它列入胜利清单。
恭喜!期待 1.7!
对我来说一切正常 :) 但我只使用基本的 jQuery。如有需要,我会提交 bug 报告。
很遗憾 requestAnimationFrame 存在这种有问题的“虫洞”。希望浏览器厂商能够修复这个问题,以便我们能够从中获益。
jQuery 真是棒极了!
我甚至不明白这如何让 jQuery 的普通用户受益。无论如何,感谢 jQuery <3 :P
@Häääns
问题在于不专业的开发者和使用 jQuery 动画 API 的遗留 jQuery 插件。修复 rAF 的唯一方法是移除它提供的全部益处,将其简化为等效于 setInterval 的功能。
它什么时候会在 Google CDN 上发布?
感谢您修复 removeAttr('style')
为什么主页没有更新为新的下载链接?
嗨,左手,我是右手!
很棒的工作!继续努力吧,伙计们!
很棒的工作!伙计们!
谢谢。升级后没有发现任何问题。主页没有更新以反映新版本的原因是什么?
(找不到其他地方提及。关于 Konami 代码的 YouTube 视频已删除。有希望替换它吗?谢谢!欢呼!)
请在 cdnjs.com 上更新它 :)
我之前没有意识到这个新版本发布了,因为我通常只查看这个网站的主页。决定查看博客,哇!
酷!修复列表也很不错。
难道你不应该也更新主页和下载页面等等吗?已经 6 天了 :-?
是的,我完全错过了这次发布。
主页仍然显示 v1.6.2,正如其他人已经提到的。
我看到 `datetime-local` 字段现在可以正确地进行 `serialize` 了。太棒了,再也不用笨拙的解决方法了 :-)
很棒的修复列表。继续努力! :-)
我非常喜欢 Jquery。
我不知道是否是代码问题,但在 IE 浏览器和 Firefox 中仍然存在内存泄漏。在 Google Chrome 中,我注意到一切正常。
如果这个问题在将来的版本中得到解决,我会非常高兴。
非常感谢您
我仍然无法让这段代码运行
alert($(“#tbl_list_items tr:nth-child(1) td:nth-child(1)”).width());
只有我一个人在 IE8 中遇到问题吗?
它返回 “undefined”。
在 1.6.3 之前,它返回 “”。
试试看
然后在 IE8 中 - URL - 字段:javascript:alert($(‘#aaa’).attr(‘myattribute’))
代码来了
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
很棒的评论。衷心感谢大多数网站访问者以及作者。我喜欢这个网站
为什么我无法下载它?
jQuery 是一项很棒的工作吗?
非常感谢找出错误 #9823 的人。我们几个月来一直认为是 IE 8 的插件或安装问题导致了随机崩溃。
自从更新后,我们再也没有遇到崩溃。