【发布时间】:2015-08-04 08:39:32
【问题描述】:
我正在客户端创建 XHTML 文档,如下所示:
var xhtmlDocType = document.implementation.createDocumentType(
'html',
'-//W3C//DTD XHTML 1.0 Transitional//EN',
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'
);
myDocument = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', xhtmlDocType);
在 Chrome 中运行此代码时,输出 (myDocument.documentElement.outerHTML) 与我预期的一样,生成的 html 元素如下所示:<html xmlns="http://www.w3.org/1999/xhtml">,但是在 Firefox 中运行相同代码时,html 元素没有 xmlns属性:<html>。 Firefox 文档似乎也被视为 HTML,执行诸如不关闭 <meta> 标记之类的操作。
这里有一个 JSFiddle 提供一个示例,可以在 Chrome 或 Firefox 中查看以查看区别:http://jsfiddle.net/70avhuo3/5/
在我的特定用例中,我需要 xmlns 属性和 Firefox 将文档视为 XHTML,以便文档有效并正确显示。如何在这里获得一致性,无论是通过修改我创建文档的方式,还是我提取内容的方式?
【问题讨论】:
标签: javascript dom cross-browser xhtml