【发布时间】:2013-01-30 13:11:45
【问题描述】:
有什么方法可以通知 Web 浏览器文档是用 XHTML5 编码的,即 HTML5 的 XML 序列化?这个问题并不像第一印象所暗示的那样明显——符合标准的 XHTML5 标头与用于 XHTML 1.0 的标头相同,因此我的浏览器(Mozilla Firefox 18)将 XHTML5 视为 XHTML 1.0,因此抱怨以前不可用的所有内容XHTML5 出现了。
根据W3C HTML5 Candidate Recomendation,DOCTYPE 标头是可选的(对于有效的XML 甚至是错误的),html 命名空间与XHTML 1.0 完全相同。那么我们如何知道如何对下面的代码进行分类呢?而浏览器又是如何区分这两种标准的呢?
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-GB">
<head>
<title>A questioning document</title>
</head>
<body>
XHTML5 or XHTML 1.0 — that is the question...
</body>
</html>
【问题讨论】:
-
Firefox 在哪里提出这些投诉?投诉的具体内容是什么?
-
没有办法让
<iframe>正常工作,也就是说,可以使用<a>的target属性向其中加载内容。 XHTML 1.0 Strict 中禁止内嵌框架,但在 HTML5 中允许,因此它的 XML 序列化 - XHTML5。但是 Firefox 无法区分 XHTML5 和 XHTML 1.0(所以我不能)并假定 Strict 变体为默认值,因此丢弃了<iframe>。 -
<iframes>在 XHTML 1.0 过渡版本中受支持。我怀疑您的问题不是“Firefox 已决定它是严格的并且忽略 iframe”,而是“Firefox 不支持 XML 模式下的 iframe”。我建议不要使用 XHTML(至少是客户端)。麻烦多多就值得了。 -
@Quentin - Firefox 的 XML 模式支持 iframe。看我的回答。
-
"那么我们怎么知道下面的代码是怎么分类的呢?浏览器又是怎么区分这两个标准的呢?"它没有。