为什么我的“myns:button”在 IE 6/7/8 中不像在 Firefox/Opera/Safari/Chrome 中那样变红?
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var tmp = document.getElementsByTagName('myns:button');
for (i = 0; i < tmp.length; i++) {
tmp[i].style.color = '#FF0000';
}
};
</script>
</head>
<body>
<myns:button>My NS Button</myns:button>
</body>
</html>
我已经尝试将以下内容添加到我的 js 中:
document.createElement('myns:button');
但这在 IE 中不起作用,为什么? 谢谢。
最佳答案
与其他人一样,我真的建议您不要这样做。但是……
如果您真的想要,并且您不太关心验证,您可以这样做:
<html xmlns:myns='http://www.example.com/namespaces'>
<head>
<script type="text/javascript">
window.onload = function() {
var tmp = document.getElementsByTagName(
(typeof document.body.scopeName == "undefined") ?
'myns:button' : 'button');
for (i = 0; i < tmp.length; i++) {
if ((typeof tmp[i].scopeName == "undefined") ||
(tmp[i].scopeName == 'myns'))
tmp[i].style.color = '#FF0000';
}
};
</script>
</head>
<body>
<myns:button>My NS Button</myns:button>
</body>
</html>
更改 http://www.example.com/namespaces为您自己的命名空间名称。
在最新版本的 FF、Chrome、Opera 以及 IE6、IE7 和 IE8 中测试。
参见 http://msdn.microsoft.com/en-us/library/ms534388%28VS.85%29.aspx作为有关其在 IE 中如何工作的信息的起点。
关于javascript - 在 html 标记中使用冒号并在 javascript 中处理其元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938031/