Internet Explorer 7 element.getAttribute方法中的错误

时间:2011-07-20 12:01:00

标签: javascript html internet-explorer-7

我在网站(twitter风格)的textareas上实现了一个长度计数器。我使用此处找到的代码http://www.codefromjames.com/wordpress/?p=15但似乎无法在IE7中使用。 我已经跟踪了这个问题,检查了属性" maxlength"在一个元素。如果找不到属性,它期望它为null,但IE7返回一个数字(我猜是浏览器或HTML标准允许的最大长度,我不知道)。 以下是您可以尝试的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
  <head>
  </head>
  <body>
    <input id="test"></input>
  </body>
    <script type="text/javascript">
var element = document.getElementById("test");
alert(element.getAttribute("maxlength"));
</script>
</html>

尝试在IE7上执行此操作,你会发现它给出了一个数字而不是null。

IE7的确切版本是7.0.5703.13

我应该将此视为IE7错误还是按预期工作?

干杯!

1 个答案:

答案 0 :(得分:0)

您可以查看element.attributes.maxLength.specified以确定maxLength是否确实是用户指定的。

var element = document.getElementById('test');
var maxLength, defaultLength = 100;

if (element.attributes.maxLength && element.attributes.maxLength.specified) {
 maxLength = element.attributes.maxLength.nodeValue || defaultLength;
} else {
 maxLength = defaultLength;
}