Warning:
This wiki has been archived and is now read-only.
HTML5
(暂放) 原文链接 http://www.w3.org/TR/2011/WD-html5-20110525/
本文档开放给所有人编辑,希望参与贡献请移步下面地址注册: http://www.w3.org/Help/Account/Request/Public
Contents
- 1 介绍
- 2 通用设施
- 3 HTML文档的语义、结构及API
- 4 HTML元素
- 4.1 根元素
- 4.2 文档元数据
- 4.3 脚本
- 4.4 区块
- 4.5 内容分组
- 4.6 文本级语意
- 4.6.1 a元素
- 4.6.2 em元素
- 4.6.3 strong元素
- 4.6.4 small元素
- 4.6.5 s元素
- 4.6.6 cite元素
- 4.6.7 q元素
- 4.6.8 dfn元素
- 4.6.9 abbr元素
- 4.6.10 time元素
- 4.6.11 code元素
- 4.6.12 var元素
- 4.6.13 samp元素
- 4.6.14 kbd元素
- 4.6.15 sub和sup元素
- 4.6.16 i元素
- 4.6.17 b元素
- 4.6.18 u元素
- 4.6.19 mark元素
- 4.6.20 ruby元素
- 4.6.21 rt元素
- 4.6.22 rp元素
- 4.6.23 bdi元素
- 4.6.24 bdo元素
- 4.6.25 span元素
- 4.6.26 br元素
- 4.6.27 wbr元素
- 4.6.28 使用方式小结
- 4.7 更改记录
- 4.8 嵌入内容
- 4.9 表格数据
- 4.10 表单
- 4.10.1 介紹
- 4.10.2 分類
- 4.10.3 form元素
- 4.10.4 fieldset元素
- 4.10.5 legend元素
- 4.10.6 label元素
- 4.10.7 input元素
- 4.10.7.1 type属性的状态
- 4.10.7.1.1 隐藏状态
- 4.10.7.1.2 文本状态和搜索状态
- 4.10.7.1.3 电话号码状态
- 4.10.7.1.4 URL状态
- 4.10.7.1.5 电子邮件状态
- 4.10.7.1.6 密码状态
- 4.10.7.1.7 日期和时间状态
- 4.10.7.1.8 日期状态
- 4.10.7.1.9 月份状态
- 4.10.7.1.10 周状态
- 4.10.7.1.11 时间状态
- 4.10.7.1.12 本地日期和时间状态
- 4.10.7.1.13 数字状态
- 4.10.7.1.14 范围状态
- 4.10.7.1.15 颜色状态
- 4.10.7.1.16 复选框状态
- 4.10.7.1.17 单选按钮状态
- 4.10.7.1.18 文件上传状态
- 4.10.7.1.19 提交按钮状态
- 4.10.7.1.20 图片按钮状态
- 4.10.7.1.21 重置按钮状态
- 4.10.7.1.22 按钮状态
- 4.10.7.2 input 元素的共通屬性
- 4.10.7.3 input 元素的共通 API
- 4.10.7.4 共通事件行為
- 4.10.7.1 type属性的状态
- 4.10.8 button元素
- 4.10.9 select元素
- 4.10.10 datalist元素
- 4.10.11 optgroup元素
- 4.10.12 option元素
- 4.10.13 textarea元素
- 4.10.14 keygen元素
- 4.10.15 output元素
- 4.10.16 progress元素
- 4.10.17 meter元素
- 4.10.18 控制項與表單的連結
- 4.10.19 表單控制項的共通屬性
- 4.10.20 文本字段选择API
- 4.10.21 约束
- 4.10.22 表單提交
- 4.10.23 表單重置
- 4.11 交互元素
- 4.12 链接
- 4.13 没有特指元素的惯用语
- 4.14 用选择器匹配HTML元素
- 5 网页加载过程
- 6 Web应用程序API
- 7 用户交互
- 8 HTML 语法
- 9 XHTML语法
- 10 渲染
- 11 废弃的特性
- 12 IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)考量
- 13 索引
- 14 参考文献
- 15 致谢
介绍
本章节已移至相应子页面
背景
HTML是万维网(World Wide Web)的核心标记语言。最初,HTML主要被设计用来描述科学语义。然而,由于它的普适性的设计,使其随后的几年中可以用来描述大量其他类型的文档甚至是应用。 在web应用领域,HTML一直没有充分得到利用。本文档试图解决此问题,同时更新HTML文档以解决近几年出现的问题。
对象
这份规范的目标读者有:本规范中特性的定义者、基于本规范的页面工具实现者以及对文档或具体实现校验是否符合本规范的验证者。 这个文档可能不会为了那些对web技术没有什么基础的读者而牺牲他的精确和完整。如需更加优雅的入门介绍可以寻找其他更加平易近人的教程或指南。 此外,拥有DOM的基础知识对于完整的理解本规范中的一些技术部分是有必要的。对Web IDL, HTTP, XML, Unicode, character encodings, JavaScript以及CSS的了解虽不必须但是将非常有帮助。
范围
本规范仅限于提供编写用户体验良好的,静态或动态的,语义化的标记语言和相关脚本API的指导。 本规范的范围不包括提供特定媒介自定义渲染机制方面的指导(尽管规范末尾包含有默认的浏览器渲染机制,且作为web语言一部分的CSS也提供了相关的机制)。 本规范并不会描述整个系统是如何运作的。尤其是硬件如何配置软件,图形操作工具和高端工作站日常用到的软件都不在本规范范围内。软件方面,本规范主要介绍一些低CPU要求的特定场景下使用的基础软件。比如,在线交易系统,搜索系统,游戏(尤其多人在线游戏),公众电话本或者地址簿,社交软件(邮件客户端,即使通讯客户端,会议软件),规范编辑软件等。
历史
起初的5年(1990-1995),HTML经历了多次的修改和扩充内容,首先是由CERN负责,其次是IETF。 W3C诞生后,HTML的发展再度发生变化。1995年,首次尝试扩充HTML内容失败,即HTML3.0。1997年HTML3.2完成。同年HTML4也完成。 之后的几年,W3C成员决定停止HTML的研发,取而代之的开始研发基于XML的XHTML。以重制HTML4为XHTML1.0开始,没有增加新特性,except the new serialization,直到2000年才结束。XHTML1.0之后,W3C的工作重心转移到,使其他工作组更便于在XHTML的模块下扩展它上。与此同时,W3C还在开发一款新语言,即不兼容之前的HTML和XHTML的XHTML2。 大约在1998年,HTML的改革停止的时候,浏览器厂商们开发出了HTML的部分API,并以DOM Level 1(1998年)、DOM Level 2 Core和DOM Level 2 HTML(从2000年到2003年)的命名发布。这些成果随着DOM Level 3规范在2004年发布的同时而逐渐被淡化,但是在Level 3草案完成前,其工作组就被迫关闭。 在2003年,被认为是下一代web技术产物的XForms发布,它重新引起了开发人员们扩展HTML的兴趣,而不是寻找HTML的替代品。这份兴趣也使得开发人员们认识到作为web技术的XML受限于新的技术(如RSS和后来的Atom),而不是替代了当前的技术(如HTML)。 重新引起兴趣后,开发人员们首先扩展了HTML4以提供更多在Xforms中介绍的特性,而不需要浏览器启动与当前HTML web页面不兼容的渲染引擎。在此之前,草案已公之于众和代码也已实装的时候,这份规范的版权归Opera软件公司所有。 2004年,HTML的改进被重新提起,并在W3C下的一个工作室测试。一些HTML5标准下的机制和早前提及的与form相关的草案提议被Mozilla和Opera联合提交给了W3C。提议因为与之前选定的web发展方向相冲突而被拒绝。取而代之的是,W3C的工作人员和会员们投票决定继续开发以XML为基础的技术作为替代。 不久之后,Apple,Mozilla和Opera联名宣布它们组建WHATWG组织以继续HTML5的开发工作。一个公众邮件列表被建立,同时,草案也被移到了WHATWG的网站上。版权被修订为三方共同所有且可复用该规范。 WHATWG制定了几个主要原则,科技需要向后兼容、即便在要改动规范而不是实例的情况下,规范和实例也需要保持一致、规范需要描述的足够清楚以至于实例可以完全达成交互而不用对调引擎。 后来急需确定HTML5规范的范围,包括之前在HTML4,XHTML1和DOM2 HTML中明确了的内容。这意味着HTML5包含了更多的内容。 2006年,W3C终于表明了对HTML5开发的兴趣,并在2007年成立了工作组特许与WHATWG就HTML5规范的制定而协同工作。Apple,Mozilla和Opera准许了W3C以W3C的版权发布HTML5规范,同时保持一个低限制证书的版本在WHATWG的网站上。 许多年后,W3C和WHATWG的HTML5工作组都在Ian Hickson的带领下工作。2011年,这两个小组得出一个结论,彼此的目标不同:W3C想制定一个HTML5特性的绝对建议标准,而WHATWG想要一个不断迭代的HTML5,持续不断地维护规范和增加特性。在2012年中,W3C成立了一个新的编辑队伍来编辑HTML5规范和为下一代HTML准备工作草案。 自那以后,W3C HTML的工作组一直在通过cherry picking的方式从WHATWG获取补丁,来修补在W3C HTML规范中或者确实存在问题的UA上的BUG。在此文发布的时候,WHATWG HTML规范已经合并补丁到8152版本了。W3C HTML编辑们从W3C HTML小组的讨论和决定中和未被WHATWG共享的bug fixes中获取补丁并修补。
设计备注
不得不承认,HTML在许多方面给人的第一印象是荒谬的和矛盾的。
和HTML支持的其他技术一样,HTML 支持的DOM API都被擅长它们领域的人员开发了好几十年,而且他们彼此并不知道其他人的存在。
不同的源码中有着相同的呈现,而它们并没有使用相同的方式去编码。此外,因为Web的独特性,事实上,总是存在bug,因为在修复bug前,内容常常不是按标准描述的那样编写。 尽管如此,我们还是努力以达成某些设计目标。以下子节是相关描述。
脚本执行的序列性
为了避免数据泄露,HTML和DOM API被设计为,脚本不可探测到其他脚本的同时执行行为。即便通过workers,如此设计的目的是确保所有脚本在浏览器上下文中是单线程执行的。 注意:在此模型中,navigator.yieldForStorageUpdates()方法在当前脚本被阻塞的情况下,允许其他脚本执行。
遵从其它规范
本规范影响或依赖于许多其他规范。在这种情况下,本规范违法其他规范的相关要求,以解决内容冲突。每个冲突的地方,都会被标注为“强制违反”,并标明违反原因。
HTML vs XHTML
这份规范的结构
如何阅读本文档
排版惯例
HTML 的简单介绍
对于作者的符合规范
对象标记
语法错误
内容模型与属性值限制
推荐阅读
通用设施
本章节到 2.4 为止已移至相应子页面
术语
资源
XML
DOM树
脚本
插件
字符编码
規範要求
規範類別
依賴關係
擴展性
字串比較與大小寫
UTF-8
通用微語法
本章节已移至相应子页面
常用解析器慣用語
布尔型属性
关键字和枚举类型属性
数字
非负整数
带符号整数
实数
百分比和长度
整数列表
尺寸列表
日期和时间
下述算法中,年year中如下月份month的日期数至31:1、3、5、7、8、10以及12月;如下月份的日期数至30:4,6,9以及11月;当月份是2月,且年份数能被400整除,或者能被4整除但不能被100整除时,日期数至29;否则只至28。此据公历年中的闰年概念。
月份
日期
时间
本地日期和时间
全球日期和时间
星期
Vaguer moments in time
颜色
空格分开的token
逗号分开的token
参考
媒体查询
URL
本章节已移至相应子页面
术语
分析URL
Resolving URLs
URL运用与创建
动态改变基础URL
URL运用的接口
获取资源
本章节已移至相应子页面
协议的概念
加密的HTTP及安全考量
決定資源的類型
通用DOM接口
本章节已移至相应子页面
在IDL属性中反射内容属性
集合
HTMLCollection
HTMLAllCollection
HTMLFormControlsCollection
HTMLOptionsCollection
DOMTokenList
DOMSettableTokenList
安全地传递结构体类型数据
DOMStringMap
DOM特征字符串
异常
垃圾回收
命名空间
本章节已移至相应子页面
HTML文档的语义、结构及API
本章节到 3.1 为止已移至相应子页面'
文档
DOM中的文档
安全
资源元数据管理
DOM树存取器
创建文档
加载XML文档
元素
本章节已移至相应子页面
语义
DOM中的元素
全局属性
id属性
title属性
lang和xml:lang属性
xml:base属性
dir属性
class属性
style属性
用data-*属性嵌入自定义的不可见数据
元素定义
属性
内容模型
内容种类
元数据式内容
流式内容
章节式内容
标题式内容
段落式内容
嵌入式内容
交互式内容
透明内容模型
段落
关于双向文字处理算法的需求
WAI-ARIA(Accessible Rich Internet Applications)无障碍的富因特网应用程序
HTML文档中的API
本章节已移至相应子页面
与XPath和XSLT交互
动态注入标记
本章节已移至相应子页面
打开输入流
关闭输入流
document.write()
document.writeln()
innerHTML
outerHTML
HTML元素
本章节到 4.2 为止已移至相应子页面
根元素
html
元素
文档元数据
head
元素
title
元素
base
元素
link
元素
meta
元素
style
元素
样式
脚本
本章节已移至相应子页面
script
元素
脚本语言
script元素内容的限制
外部脚本的内联文档
script元素和XSLT的交互
noscript
元素
区块
本章节已移至相应子页面
body
元素
section
元素
article
元素
aside
元素
h1
,h2
,h3
,h4
,h5
和h6
元素
hgroup
元素
header
元素
address
元素
头和区块
内容分组
本章节已移至相应子页面
p
元素
hr
元素
pre
元素
blockquote
元素
ol
元素
ul
元素
li
元素
dl
元素
dt
元素
dd
元素
figure
元素
div
元素
文本级语意
本章节已移至相应子页面
a
元素
em
元素
strong
元素
small
元素
s
元素
cite
元素
q
元素
dfn
元素
abbr
元素
time
元素
code
元素
var
元素
samp
元素
kbd
元素
sub
和sup
元素
i
元素
b
元素
u
元素
mark
元素
ruby
元素
rt
元素
rp
元素
bdi
元素
bdo
元素
span
元素
br
元素
wbr
元素
使用方式小结
更改记录
本章节已移至相应子页面
ins
元素
del
元素
ins
和del
元素的通用属性
更改记录与段落
更改记录与列表
嵌入内容
img
元素
本章节已移至相应子页面
iframe
元素
本章节已移至相应子页面
embed
元素
本章节已移至相应子页面
object
元素
本章节已移至相应子页面
param
元素
本章节已移至相应子页面
video
元素
audio
元素
source
元素
track
元素
多媒体元素
canvas
元素
本章节已移至相应子页面
颜色空间和颜色校正
canvas
元素安全性
map
元素
area
元素
图像映射
MathML
SVG
尺寸属性
表格数据
本章节已移至相应子页面
table
元素
描述表格的技术
布局表格的技术
colgroup
元素
col
元素
tbody
元素
thead
元素
tfoot
元素
tr
元素
td
元素
th
元素
td
和th
元素的通用属性
处理模型
创建一个表格
创建数据单元格与标题单元格之间的关系
示例
表单
本章节到 4.10.6 为止已移至相应子页面
介紹
编写用户界面
实现一个表单的服务器端过程
配置表单使其与服务器端相通
客户端表单验证
分類
form
元素
fieldset
元素
legend
元素
label
元素
input
元素
本章节已移至相应子页面
type
属性的状态
隐藏状态
文本状态和搜索状态
电话号码状态
URL状态
电子邮件状态
密码状态
日期和时间状态
日期状态
月份状态
周状态
时间状态
本地日期和时间状态
数字状态
范围状态
颜色状态
复选框状态
单选按钮状态
文件上传状态
提交按钮状态
图片按钮状态
重置按钮状态
按钮状态
input
元素的共通屬性
本章节已移至相应子页面
input
元素的共通 API
本章节已移至相应子页面
共通事件行為
本章节已移至相应子页面
button
元素
select
元素
datalist
元素
optgroup
元素
option
元素
textarea
元素
keygen
元素
output
元素
progress
元素
meter
元素
控制項與表單的連結
本章节已移至相应子页面
表單控制項的共通屬性
本章节已移至相应子页面
為表單控制項命名
啟用和停用控制項
控制項的取值
控制項的自動聚焦
限制使用者的輸入長度
表單提交
提交元素方向性
文本字段选择API
本章节已移至相应子页面
约束
本章节已移至相应子页面
定义
约束验证
约束验证API
安全性
表單提交
本章节已移至相应子页面
介绍
隱式提交
表单提交算法
构建表单数据集
URL编码表单数据
多部分表单数据
纯文本表单数据
表單重置
本章节已移至相应子页面
交互元素
details
元素
summary
元素
command
元素
链接
本章节已移至相应子页面
介绍
由a
和area
元素创建的链接
跳转至超链接
链接类型
没有特指元素的惯用语
用选择器匹配HTML元素
本章节已移至相应子页面
网页加载过程
本章节到 5.2 为止已移至相应子页面
浏览上下文
嵌套的浏览上下文
导航在 DOM 中嵌套的浏览上下文
辅助浏览上下文
在DOM中导航辅助浏览上下文
次级浏览上下文
安全性
浏览上下文分组
浏览上下文名称
浏览上下文可以有一个浏览上下文名称。默认情况下,浏览上下文没有名称(即未设置名称)。
一个合法的浏览上下文名称可以是任意字符串,该字符串由至少一个字符组成,且不能以U+005F下划线字符开始。(以下划线开始的名称是保留关键字)。
一个合法的浏览上下文名称或关键字可以是一个合法的浏览上下文名称或大小写不敏感的以下字符串之一:_blank
、_self
、_parent
或_top
。
浏览上下文名称的值根据当前页面是否在沙箱环境中有着不同的意义,如下表(非正式)所述。在此表格中,“当前”表示链接或脚本所在的浏览上下文,“父级”表示链接或脚本所在的浏览上下文的父级浏览上下文,“主级”表示当链接或脚本在一个无缝的iframe中时,使用其所在的浏览上下文最近的祖先级浏览上下文,“顶级”表示链接或脚本所在的浏览上下文对应的顶级浏览上下文,“新建”表示需要创建一个新的顶级浏览上下文或辅助浏览上下文,根据不同的用户配置以及用户代理的策略,“可能新建”表示采用“新建”的策略,但鼓励用户代理视其为“无”,意味着不采取任何动作。
关键字 | 原始效果 | 在iframe 中时... |
||||
seamless="" |
sandbox="" |
sandbox="" |
sandbox="allow-top-navigation" |
sandbox="allow-top-navigation" |
||
未指定,当用于链接及表单提交时 | 当前 | 主级 | 当前 | 主级 | 当前 | 主级 |
未指定,当用于window.open() 时 |
新建 | 新建 | 可能新建* | 可能新建* | 可能新建* | 可能新建* |
空字符串 | 当前 | 主级 | 当前 | 主级 | 当前 | 主级 |
_blank | 新建 | 新建 | 可能新建 | 可能新建 | 可能新建 | 可能新建 |
_self | 当前 | 当前 | 当前 | 当前 | 当前 | 当前 |
_parent,如果没有父级浏览上下文 | 当前 | 当前 | 当前 | 当前 | 当前 | 当前 |
_parent,如果父级浏览上下文是顶级浏览上下文 | 父级/顶级 | 父级/顶级 | 无 | 无 | 父级/顶级 | 父级/顶级 |
_parent,如果有父级浏览上下文且其不是顶级浏览上下文 | 父级 | 父级 | 无 | 无 | 无 | 无 |
_top,如果当前浏览上下文是顶级浏览上下文 | 顶级 | 顶级 | 顶级 | 顶级 | 顶级 | 顶级 |
_top,如果当前浏览上下文不是顶级浏览上下文 | 顶级 | 顶级 | 无 | 无 | 顶级 | 顶级 |
不存在的名称 | 新建 | 新建 | 可能新建 | 可能新建 | 可能新建 | 可能新建 |
存在该名称且为子级浏览上下文 | 指定的子级 | 指定的子级 | 指定的子级 | 指定的子级 | 指定的子级 | 指定的子级 |
存在该名称且为当前浏览上下文 | 当前 | 当前 | 当前 | 当前 | 当前 | 当前 |
存在该名称且是父级浏览上下文,同时是顶级浏览上下文 | 指定的父级 | 指定的父级 | 无 | 无 | 指定的父级/顶级 | 指定的父级/顶级 |
存在该名称且是父级浏览上下文,但不是顶级浏览上下文 | 指定的父级 | 指定的父级 | 无 | 无 | 无 | 无 |
- 该情况仅在
sandbox
属性同时允许脚本交互时出现。
当一个算法所在的任务满足以下条件时,可以打开一个弹出窗:
根据给定的浏览上下文名称选择浏览上下文的规则如下所述,该规则假定其在一个浏览上下文中使用:
- 如果给定的浏览上下文名称是空字符串或
_self
,则必须使用当前的浏览上下文。
如果给定的浏览上下文名称是_self
,则被认为是显式自导航覆盖,这将覆盖iframe
元素上由seamless
属性设置的无缝浏览上下文标记指定的行为。 - 如果给定的浏览上下文名称是
_parent
,则必须使用当前浏览上下文的父级浏览上下文,除非不存在父级浏览上下文,这种情况下则必须使用当前浏览上下文。 - 如果给定的浏览上下文名称是
_top
,则必须使用当前浏览上下文关联的顶级浏览上下文,如果不存在则必须使用当前浏览上下文。 - 如果给定的浏览上下文名称不是
_blank
,且存在一个浏览上下文的名称与给定的相同,同时当前浏览上下文可以控制该浏览上下文的导航,且用户代理判定这两个浏览上下文相关度足以发生交互,则必须使用指定的浏览上下文。如果有多个符合条件的浏览上下文,用户代理需要根据任意一致的方法选择其一,如最近打开的,最频繁获得焦点的,或者更加具有相关度的。
如果这一步选择的结果是当前浏览上下文,则同样被认为是显式自导航覆盖。 - 其他情况下,需要请求一个新的浏览上下文,这将根据用户代理的配置及功能产生不同的效果 -- 根据下表选择第一个可接受的规则:
- 如果当前浏览上下文的活动文档创建时,设置了沙箱内的导航浏览上下文标记:
用户代理可以提供一个新的顶级浏览上下文或重用一个已经存在的顶级浏览上下文。如果用户设置了这些选项,则必须使用指定的浏览上下文(不需要该浏览上下文的名称为给定的值)。默认行为(用户代理未提供给用户相关的选项,或用户拒绝使用浏览上下文)下,不得选择任何浏览上下文。 - 如果用户代理根据配置判定需要创建一个新的浏览上下文,且该浏览上下文是作为跟进超链接行为的的一部分而被创建的,同时该超链接的链接类型包含了
noreferrer
关键字:
必须创建一个新的顶级浏览上下文。如果给定的浏览上下文名称不是_blank
,则新建的顶级浏览上下文的名称必须为给定的值(否则该浏览上下文不设置名称)。最终选择的浏览上下文必须是此新建的浏览上下文。
注意:如果需要立刻导航,则导航会在可替换的状态下进行。 - 如果用户代理根据配置判定需要创建一个新的浏览上下文,且该浏览上下文是作为跟进超链接行为的的一部分而被创建的,但该超链接的链接类型不包含
noreferrer
关键字:
必须创建一个新的辅助浏览上下文,设置其开启方浏览上下文为当前浏览上下文。如果给定的浏览上下文名称不是_blank
,则新建的辅助浏览上下文的名称必须为给定的值(否则该浏览上下文不设置名称)。最终选择的浏览上下文必须是此新建的浏览上下文。
注意:如果需要立刻导航,则导航会在可替换的状态下进行。 - 如果用户代理根据配置判定需要重用当前的浏览上下文:
最终选择的浏览上下文就是当前的浏览上下文。 - 如果用户代理根据配置判定不需要查找对应的浏览上下文:
没有被选择的浏览上下文。
- 如果当前浏览上下文的活动文档创建时,设置了沙箱内的导航浏览上下文标记:
推荐用户代理实现者为用户提供相关的配置项,用以保证总是重用当前的浏览上下文。
Window对象
安全性
创建和按浏览上下文名称导航的API
访问其他浏览上下文
访问命名窗口对象
垃圾收集和浏览上下文
浏览器界面元素
WindowProxy对象
源
源和真源是非透明的标识符,由一个访问协议,一个主机名,一个端口组成.(真源是指document.domain的值)
注意:网站使用加密连接时会额外包含证书,确保网站证书修改后它的源也被修改.
这些特性定义如下:
URL
URL的源与真源是根据 The Web Origin Concept进行定义的.
脚本
脚本的源与真源是根据下面这些条件进行定义的:
Document对象
图片
audio和video元素
字体
放宽同源限制
会话历史和导航
本章节已移至相应子页面
浏览上下文的会话历史
History接口
Location 接口
安全性
会话历史实现说明
浏览网页
本章节已移至相应子页面
在文档之间导航
页面加载HTML文件的处理模型
页面加载XML文件的处理模型
页面加载文本文件的处理模型
页面加载图像的处理模型
页面加载使用插件内容的处理模型
页面加载没有DOM的内联内容的处理模型
导航到一个片段标识符
穿越历史
事件定义
卸载文档
事件定义
中止文档加载
离线Web应用程序
本章节已移至相应子页面
简介
事件摘要
应用程序缓存
缓存清单语法
Manifest清单示例
写缓存清单
解析缓存清单
下载或更新应用程序缓存
应用程序缓存的选择算法
更改的网络模式
过期的应用程序缓存
磁盘空间
应用程序缓存API
浏览器状态
Web应用程序API
脚本功能
介绍
启用和禁用脚本功能
处理模型
定义
调用脚本
创建脚本
当规范涉及需要创建一个脚本,并给定脚本源、脚本的URL、脚本的语言、全局对象、浏览上下文、URL编码以及根URL时,用户代理必须按以下步骤进行处理:
- 如果传递给该算法的浏览上下文禁用了脚本,则中断以下步骤,其表现如果脚本没有执行任何内容并返回void。
- 根据指定的脚本语言,创建一个合适的脚本执行环境。
- 使用该脚本执行环境,根据指定的脚本语言,对脚本源进行解析/编译/初始化操作,以此得到该脚本的一系列代码入口。如果指定的脚本语言与脚本源要求某些代码需要被立即执行,则将该代码的入口作为初始代码入口。
- 按照传递给该算法的配置项,设定脚本的全局对象、浏览上下文、文档对象、URL编码以及根URL。
- 如果以上步骤均成功执行(即脚本成功完成编译),则跳转到脚本的初始代码入口。反之,将脚本源URL、出现问题的行号作为错误信息,在script origin中,触发该脚本的全局对象的onerror事件处理函数。如果在此过程中错误并没有得到处理,则可以向用户报告该错误。
如果用户代理需要通过指定的脚本源、脚本URL、脚本语言、浏览上下文创建一个无效的脚本,则用户代理必须创建一个脚本,该脚本使用指定的脚本源、脚本URL、脚本语言,使用一个空对象作为其全局对象,并使用指定的浏览上下文。由于该脚本并不对外暴露任何API,因此URL编码和根URL并不重要。
当标准涉及需要从一个<script>节点创建脚本,并给定脚本源、脚本的URL、脚本语言时,用户代理必须使用给定的脚本源、脚本URL和脚本语言,并使用从节点中提取的设置来创建一个脚本。
从节点中提取设置的计算过程如下:
- 使用节点的Document对象(当节点为Document时则使用自身)作为脚本的document属性。
- 使用当前文档的浏览上下文作为浏览上下文。
- 使用当前文档的Window对象作为全局对象。
- 使用当前文档的编码作为URL编码(此处为引用关系,不作复制处理)。
- 使用当前文档的根URL作为根URL(此处为引用关系,不作复制处理)。
结束脚本
运行时脚本错误
事件循环
定义
处理模型
通用任务来源
“javascript: ”URL协议
事件
事件处理
许多对象可以指定事件处理行为。这些行为将成为指定它们的对象的冒泡事件侦听器。
一个事件处理行为可以被设为null值或一个Function对象。在初始化时,事件处理行为必须被设为null。
事件处理行为通过一到两种途径暴露。
第一种途径是一个事件处理行为IDL属性,它是所有事件处理行为所共有的。
第二种途径是一个事件处理行为内容属性。HTML元素的事件处理行为和某些Window对象的事件处理行为通过该途径暴露。
事件处理行为IDL属性,在设置其值时,必须以相应的事件处理行为作为其新值;在获取其值时,必须返回任何相应的事件处理行为的当前值(可能为null)。
如果一个事件处理行为IDL属性公开一个不存在的对象的事件处理行为,则必须总是在获取其值是返回null,且在设置其值时不做操作。
事件处理行为内容属性,当其被指定时,则必须包含有效地JavaScript代码;当其被解析时,将会匹配在自动插入分号后生成的FunctionBody。
当一个事件处理行为内容属性被设置时,如果该元素被浏览器上下文中的Document所拥有,并且脚本程序在浏览器上下文中被启用,则用户代理必须执行下列步骤以便在设置内容属性为新值后生成一个脚本程序:
- 设置一个相应的事件处理行为为null。
- 创建一个JavaScript脚本执行环境。
- 将事件处理行为内容属性的新值设为body。
- 如果body不能作为FunctionBody解析,或者解析检测到一个早期错误,则步骤终止。注:FunctionBody定义在ECMAScript第5版第13节“方法定义”。早期错误定义在ECMAScript第5版第16节“错误”。
- 如果body以一个包含了使用严格指令的指令开端作为开始,则strict为真,否则strict为假。注:“使用严格指令”和“指令开端”条款定义在ECMAScript第5版第14.1节“指令开端及使用严格指令”。
- 使用之前创建的脚本制定环境创建一个function对象(定义在ECMAScript第5版第13.2节“创建Function对象”):参数列表FormalParameterList ;如果属性是window对象的onerror属性 : 方法拥有三个参数,分别名为event、source和fileno。;否则 : 方法用户一个单一参数,名为event。
- 创建脚本的全局对象。
元素、Document和Window对象的事件处理
以下内容已移至子页面。
事件触发
事件和Window对象
Base64实用方法
定时器
本章节移至相应子页面
用户提示
本章节移至相应子页面
简单对话框
打印
使用独立文档实现的对话框
系统状态及性能
本章节移至相应子页面
客户端标识
自定义协议和内容处理
安全和隐私
用户界面示例
手动释放存储互斥量
External
接口
用户交互
本章节到 7.5.3 为止已移至相应子页面
啟動
焦距
設定鍵盤快捷鍵
編輯
使文档区域可编辑:contenteditable内容属性
使整个文档可编辑:designMode IDL属性
页面内编辑器的最佳实践
编辑API
本章节到 7.5.5 为止已移至相应子页面
拼写及语法检查
拖曳
本章节到 7.7 为止已移至相应子页面
文字搜尋 API
HTML 语法
本章节到 8.1 为止已移至相应子页面
编写 HTML 文档
DOCTYPE 声明
元素
开始标签
结束标签
属性
可选标签
内容模型限制
原始文本与 RCDATA 元素内容限制
文本
换行
字符引用
CDATA 段落
注释
解析 HTML 文档
本章节到 8.2.3 为止已移至相应子页面
解析模型概述
輸入串流
決定字符編碼
字符编码
輸入串流的前置處理
解析時的編碼變更
解析态
插入模式
开元素栈
活动格式元素列表
元素指针
其他解析态标记
Tokenization
本章节已移至相应子页面
树构建
创建与插入元素
闭合缺结束标签的元素
Foster parenting
解析 HTML 內容內的 token 的規則
插入模式:「IN HEAD」
- 標籤名是 "meta" 的開始標籤
-
若元素有
charset
屬性,且取值為使用者代理支援的 ASCII 兼容的字符編碼或一個 UTF-16 編碼且可信度目前為「暫時」,則變更編碼成charset
屬性取值對應的編碼。否則,若元素有
http-equiv
屬性且其取值 ASCII 不分大小寫批配 "Content-Type
" 字串,且有content
屬性,且對屬性的取值使用由meta
元素萃取編碼的演算法可以得到使用者代理支援的 ASCII 兼容的字符編碼或一個 UTF-16 編碼且可信度目前為「暫時」,則變更編碼成萃取出來的編碼。
解析外语内容区域的规则
结束
强制 HTML DOM 转为信息集
错误处理与解析器奇怪情况简介
标签嵌套错误:<b><i></b></i>
标签嵌套错误:<b><p></b></p>
Unexpected markup in tables
在解析页面时修改页面的脚本
The execution of scripts that are moving across multiple documents
Unclosed formatting elements
序列化 HTML 区段
解析 HTML 区段
命名字符参考
XHTML语法
渲染
本章节已移至相应子页面
介紹
CSS 使用者代理樣式表與表象呈現提示
介紹
显示状态
边距与边框
对齐
字体与颜色
标点符号与装饰
继承属性的覆盖规则
hr
元素
fieldset
元素
置换元素
綁定
框架与框架集
互动媒介
印刷媒介
废弃的特性
本章节已移至相应子页面
废弃但符合规范的特性
对废弃但符合规范的特性进行警告
非标准特性
实施需求
applet元素
marquee元素
Frames
其他元素,属性和API
IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)考量
索引
参考文献
本章节已移至相应子页面