Xhtml HTML属性命名空间
我有一个简单的html文档Xhtml HTML属性命名空间,xhtml,attributes,namespaces,Xhtml,Attributes,Namespaces,我有一个简单的html文档 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/2000/xmlns xmlns:bar="http://www.foo.com/schemas/bar"> <head> </head> <body> <img src="penguins.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2000/xmlns
xmlns:bar="http://www.foo.com/schemas/bar">
<head>
</head>
<body>
<img src="penguins.png" bar:xwidth="300"/>
</body>
</html>
任意前缀的名称空间解析是XML特性,而不是HTML特性。因此,如果您使用应用程序/xhtml+xml
mime类型为页面提供服务,那么浏览器将使用xml解析器,您的命名空间将按照您的意愿进行解析
浏览器的HTML解析器根本不支持前缀/名称空间解析,除非在解析嵌入式SVG和MathML时,其中非常小的属性列表被“神奇地”转换,例如xml:lang
和xlink:href
。您自己的名称空间永远不受支持
HTML文档中的innerHTML
与HTML解析器的工作方式完全相同
(尤其要注意IE的HTML解析器,它有自己的概念来处理名称中带有冒号的元素和属性。不过,您仍然无法获得namespaceURI的值)
因此,您唯一的选择是:(i)使用应用程序/xhtml+xml
;(ii)使用脚本构建名称空间属性;或者(iii)不要使用名称空间属性