是否可以在Internet Explorer 6中使用 - 是的,IE6 :( - 使用自定义标签而不定义名称空间。
示例:
<!-- NS is namespace -->
<html XMLNS:NS>
<head>
<style type="text/css">
NS/:myTag {
color: #666;
font-size: 20px;
}
</style>
</head>
<body>
<NS:myTag>
The quick brown fox jumps over the lazy dog
</NS:myTag>
</body>
</html>
我需要在源代码中使用不带NS:
前缀的标签。
答:在IE6中是否可以使用没有名称空间的自定义标签? B:如果没有,我可以在给定父级的所有标签中插入带有JavaScript的前缀吗?
答案 0 :(得分:4)
较旧版本的IE要求您在设置样式或解析之前至少使用createElement
一次自定义元素名称;没关系,如果你随后扔掉你创建的元素,创建它的行为对IE说“这是一种元素”。此外,您的选择器/
应为\
:
<!-- NS is namespace -->
<html XMLNS:NS>
<head>
<script>
document.createElement("NS:myTag"); // <====
</script>
<style type="text/css">
NS\:myTag { /* <==== */
color: #666;
font-size: 20px;
}
</style>
</head>
<body>
<NS:myTag>
The quick brown fox jumps over the lazy dog
</NS:myTag>
</body>
</html>
上面的工作在IE6中(我碰巧有一个旧的虚拟机,我随身携带IE6;幸好在这个问题之前的几个月内没有用它来启动它。)
警告:我并没有大量使用HTML中的命名空间(从来没有必要),所以如果上述内容在某些方面是天真的,那么道歉。正如我所说,它在IE6(和Chrome 42。)中起作用。
重新评论:
我的目标是在HTML
<myTag>
而不是<NS:myTag>
中使用,因为使用命名空间我不能简单地将xml放在html中。
我很困惑:如果您想使用<myTag>...</myTag>
,为什么问题会使用<NS:myTag>...</NS:myTag>
?
但如果您只想使用<myTag>
,它就可以了 - 再次使用IE6,您需要createElement
:
<!-- NS is namespace -->
<html XMLNS:NS>
<head>
<script>
document.createElement("myTag");
</script>
<style type="text/css">
myTag {
color: #666;
font-size: 20px;
}
</style>
</head>
<body>
<myTag>
The quick brown fox jumps over the lazy dog
</myTag>
</body>
</html>