Firefox 6 中有什么新功能?
此新版本中最值得注意的添加是 **<progress>** 元素、**触摸事件**、**服务器发送事件** 以及 **WebSockets** 的回归。
<progress> 元素
此元素可用于在页面中提供某个内容正在进行中的视觉提示。正在使用系统进度条,这意味着 MacOS 和 Linux 用户看到的将与此处显示的有所不同。
触摸事件
标准 触摸事件 现在在 Firefox “桌面”版和移动版中均可用,使用户能够使用触摸屏上的手指与网页进行交互。
试试这个极简的 触摸演示。
服务器发送事件
服务器发送事件 是服务器端脚本生成客户端事件以及相关数据的工具。
服务器端使用 text/event-stream
类型的 MIME 生成消息,并包含事件数据的列表。
data: data generated by the server
data: this line will generate a second event
看看这个使用服务器发送事件构建的 类似 Twitter 的时间线。
WebSockets 回来了!
WebSockets 可用于在浏览器和服务器之间创建交互式通信通道。它们已用于构建“HTML5”聊天、多人游戏等等。
请注意,此 API 将被暂时命名空间化,以预见即将对规范进行的更改。
其他更改
HTML
- HTML5
<a href="https://mdn.org.cn/en/HTML/Element/progress"><progress></a>
元素现在已得到支持,它允许您创建进度条。 - 现在支持 HTML5
<a href="https://mdn.org.cn/en/HTML/Element/track"><track></a>
元素的解析,该元素指定媒体元素的文本轨道。此元素现在应该出现在 DOM 中,但其行为尚未实现。 - 当容器的角使用
<a href="https://mdn.org.cn/en/CSS/border-radius">border-radius</a>
属性圆角时,<a href="https://mdn.org.cn/en/HTML/Element/iframe"><iframe></a>
元素现在已正确地被其容器裁剪。 <a href="https://mdn.org.cn/en/HTML/Element/form"><form></a>
元素的文本<a href="https://mdn.org.cn/en/HTML/Element/input"><input></a>
字段不再支持 XUL<a href="https://mdn.org.cn/en/XUL/Property/maxwidth">maxwidth</a>
属性;这从不有意,而且违反了 HTML 规范。您应该改为使用<a href="https://mdn.org.cn/en/HTML/Element/input#attr-size">size</a>
属性来设置输入字段的最大宽度。<a href="https://mdn.org.cn/en/HTML/Element/canvas"><canvas></a>
<a href="https://mdn.org.cn/en/DOM/CanvasRenderingContext2d">CanvasRenderingContext2d</a>
属性fillStyle
和strokeStyle
过去会忽略在有效颜色定义后包含的垃圾;现在这被正确地视为错误。例如,颜色“red blue”过去被视为“red”,而它应该被忽略。- 现在可以将
<a href="https://mdn.org.cn/en/HTML/Element/canvas"><canvas></a>
元素的宽度和高度正确地设置为 0px;以前,当您尝试执行此操作时,它们会被任意地设置为 300px。 - 当
<a href="https://mdn.org.cn/en/HTML/Element/textarea"><textarea></a>
元素获得焦点时,文本插入点现在默认情况下被放置在文本的开头而不是末尾。这使得 Firefox 的行为与其他浏览器一致。
CSS
<a href="https://mdn.org.cn/en/CSS/text-decoration-color">-moz-text-decoration-color</a>
- 此新属性允许您设置文本装饰(如下划线、上划线和删除线)使用的颜色。
<a href="https://mdn.org.cn/en/CSS/text-decoration-line">-moz-text-decoration-line</a>
- 此新属性允许您设置添加到元素的文本装饰类型。
<a href="https://mdn.org.cn/en/CSS/text-decoration-style">-moz-text-decoration-style</a>
- 此新属性允许您设置文本装饰(如下划线、上划线和删除线)的样式。样式包括单划线、双划线、波浪线、点线等等。
<a href="https://mdn.org.cn/en/CSS/hyphens">-moz-hyphens</a>
- 此新属性允许您控制在换行期间如何处理单词的连字符。
<a href="https://mdn.org.cn/en/CSS/orient">-moz-orient</a>
- 一个新的(目前是 Mozilla 特定的)属性,它允许您控制某些元素(特别是
<a href="https://mdn.org.cn/en/HTML/Element/progress"><progress></a>
)的垂直或水平方向。 <a href="https://mdn.org.cn/en/CSS/%3a%3a-moz-progress-bar">::-moz-progress-bar</a>
- 一个 Mozilla 特定的伪元素,它允许您设置
<a href="https://mdn.org.cn/en/HTML/Element/progress"><progress></a>
元素中代表任务已完成部分的区域的样式。
其他 CSS 更改
<a href="https://mdn.org.cn/en/CSS/@-moz-document">@-moz-document</a>
属性具有一个新的regexp()
函数,它允许您将文档的 URL 与 正则表达式 进行匹配。- 由于我们已经删除了对
aural
媒体组的少量代码,因此不再支持<a href="https://mdn.org.cn/en/CSS/azimuth">azimuth</a>
CSS 属性。它从未得到过实质性的实现,因此从现在开始,删除笨拙的实现而不是尝试修补它更有意义。 - 过去,
<a href="https://mdn.org.cn/en/CSS/%3ahover">:hover</a>
伪类在怪异模式下不会应用于类选择器;例如,.someclass:hover
不起作用。此怪异行为已得到删除。 <a href="https://mdn.org.cn/en/CSS/%3aindeterminate">:indeterminate</a>
伪类可以应用于<a href="https://mdn.org.cn/en/HTML/Element/progress"><progress></a>
元素。这是非标准的,但我们希望它会被其他浏览器采用,因为它将非常有用。
DOM
- 从代码中使用媒体查询
- 您现在可以使用
<a href="https://mdn.org.cn/en/DOM/window.matchMedia">window.matchMedia()</a>
方法和<a href="https://mdn.org.cn/en/DOM/MediaQueryList">MediaQueryList</a>
接口以编程方式测试媒体查询字符串的结果。 - 触摸事件
- Firefox 6 添加了对 W3C 标准触摸事件的支持;这使得能够轻松地解释触摸敏感表面(如触摸屏和触控板)上的一个或多个触摸。
- 服务器发送事件
- 服务器发送事件使 Web 应用程序能够像任何本地创建的 DOM 事件一样请求服务器发送事件。
navigator.securityPolicy
长时间返回空字符串,现在已完全删除。<a href="https://mdn.org.cn/en/DOM/BlobBuilder">BlobBuilder</a>
现在已实现,但目前它是带前缀的(因此您需要使用MozBlobBuilder
)。<a href="https://mdn.org.cn/en/DOM/document.height">document.height</a>
和<a href="https://mdn.org.cn/en/DOM/document.width">document.width</a>
已被删除。 错误 585877<a href="https://mdn.org.cn/en/DOM/DocumentType">DocumentType</a>
对象的entities
和notations
属性从未实现,始终返回null
,现已删除,因为它们已从规范中删除。DOMConfiguration
接口及其使用的document.domConfig
属性均已删除;它们从未得到支持,并且已从 DOM 规范中删除。hashchange
事件现在正确地包含了newURL
和oldURL
字段。- 当在没有文件读取正在进行的情况下使用
<a href="https://mdn.org.cn/en/DOM/FileReader">FileReader</a>
接口的abort()
方法时,它现在会抛出异常。 <a href="https://mdn.org.cn/en/DOM/window.postMessage">window.postMessage()</a>
方法现在使用 结构化克隆算法 允许您从一个窗口传递 JavaScript 对象,而不仅仅是字符串到另一个窗口。<a href="https://mdn.org.cn/en/DOM/window.history">window.history</a>
API 现在使用 结构化克隆算法 对您传递给pushState()
和replaceState()
方法的对象进行序列化;这允许您使用更复杂的对象(包括包含引用循环图的对象)。- 您现在可以通过监听新的
beforeprint
和afterprint
事件来 检测何时启动和完成打印。 document.strictErrorChecking
属性已删除,因为它从未实现并且已从 DOM 规范中删除。- 现在支持标准
<a href="https://mdn.org.cn/en/DOM/event.defaultPrevented">event.defaultPrevented</a>
属性;您应该使用它而不是非标准getPreventdefault()
方法来检测是否在事件上调用了<a href="https://mdn.org.cn/en/DOM/event.preventDefault">event.preventDefault()</a>
。 <a href="https://mdn.org.cn/en/DOM/window.top">window.top</a>
属性现在是只读的。- 我们从未记录过的 DOM 视图已被移除。这只是一些不必要的实现细节,使事情变得复杂,因此我们将其移除。如果您注意到此更改,那么您可能操作有误。
EventTarget
函数addEventListener()
的useCapture
参数现在是可选的,与 WebKit 一致(并符合规范的最新版本)。XMLHttpRequest
对象的mozResponseArrayBuffer
属性已被responseType
和response
属性替换。<a href="https://mdn.org.cn/en/DOM/element.dataset">element.dataset</a>
属性已添加到HTMLElement
接口,允许访问元素的data-*
全局属性。<a href="https://mdn.org.cn/en/DOM/customEvent">customEvent</a>
方法已实现。(参见 错误 427537 )- 出于安全原因,
data:
和javascript:
URI 在用户在地址栏中输入时不再继承当前页面的安全上下文;相反,会创建一个新的、空的、安全上下文。这意味着通过在地址栏中输入javascript:
URI 加载的脚本不再可以访问 DOM 方法等。然而,这些 URI 在被脚本使用时仍然像以前一样工作。
JavaScript
- 过去,可以使用
new
运算符在几个内置函数(eval、parseInt、Date.parse……)上使用,而这些函数不应允许这样做,根据规范。这种行为不再受支持。以这种方式使用new
运算符从未得到正式支持,而且使用并不广泛,因此此更改不太可能影响您。 - ECMAScript Harmony WeakMaps 已作为原型实现添加。
SVG
<a href="https://mdn.org.cn/en/SVG/Attribute/pathLength">pathLength</a>
属性现在受支持。- 从
data:
URL 加载的 SVG 模式、渐变和滤镜现在可以正常工作。
MathML
<a href="https://mdn.org.cn/en/MathML/Element/mstyle"><mstyle></a>
的实现已更正。
辅助功能 (ARIA)
aria-busy
的值发生变化时,现在会正确发送状态更改事件。aria-sort
发生时,现在会正确发送属性更改事件。
网络
- WebSockets
- WebSockets 已更新至 Firefox 6 的协议版本 07。
Content-Disposition
标头的解析已修复,可以正确地将反斜杠转义的 ASCII 字符解释为该字符本身。之前,它会错误地将该字符替换为下划线(“_”)。Set-Cookie
标头中 path 字段的值现在在使用引号时会正确解释;之前,它们被视为 path 字符串的一部分,而不是分隔符。此更改可能会影响与某些网站的兼容性,因此作者应检查其代码。Upgrade
请求标头现在受支持;您可以通过调用<a href="https://mdn.org.cn/en/XPCOM_Interface_Reference/nsIHttpChannelInternal#HTTPUpgrade%28%29">nsIHttpChannelInternal.HTTPUpgrade()</a>
来请求将 HTTP 通道升级到其他协议。
其他更改
- 对微型摘要的支持已被移除;这些功能从未被广泛使用,也难以发现,继续支持它们会使 Places(书签和历史记录)架构的改进变得困难。
- WebGL 现在支持
OES_texture_float
扩展。
您可以通过告知我们您是否觉得细节级别合适来帮助我们改进这些变更日志。
关于 louisremi
开发者关系团队,长期 jQuery 贡献者和开放网络爱好者。 @louis_remi
91 条评论