IE8-JavaScript下拉菜单onchange调用;角色();出错

IE8-JavaScript下拉菜单onchange调用;角色();出错,javascript,internet-explorer-8,Javascript,Internet Explorer 8,我实际上是在为IE8调试一个应用程序(在IE6之后,IE7现在是IE8)。当我们在下拉菜单上执行操作时,我发现我的一个界面中有一个bug,我想知道为什么以前没有发生过。我最终发现不支持直接调用名为“role()”的方法的下拉列表(或选择) 有人知道为什么吗 下面是一个bug示例: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html xmlns="http://www.w3.org/1999

我实际上是在为IE8调试一个应用程序(在IE6之后,IE7现在是IE8)。当我们在下拉菜单上执行操作时,我发现我的一个界面中有一个bug,我想知道为什么以前没有发生过。我最终发现不支持直接调用名为“role()”的方法的下拉列表(或选择)

有人知道为什么吗

下面是一个bug示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function rolea(dropdown){
    alert("value");
    //role();
}

function role(){
    alert("value");
}
</script>
</head>
<body>

<select onchange="role()" name="select1">
    <option>a</option>
    <option>b</option>
</select>
</body>
</html>

功能rolea(下拉列表){
警报(“值”);
//角色();
}
函数角色(){
警报(“值”);
}
A.
B
如果我们调用“角色()”,它将不起作用,我将收到错误: 第18行 错误:对象不支持此操作


当我调用“rolea()”时,它会工作并显示JavaScript警报。如果我尝试从“rolea()”调用“role()”,它也可以工作。

IE8支持辅助技术,它通过节点上的“role”和“aria”属性定义可访问性功能。角色是IE中的保留字,位于DOM范围内

如果执行
,您将看到这是一个字符串。尝试将字符串作为函数执行会导致错误。(要使警报正常工作,请删除角色函数声明并查看它的实际操作)

您可以在这里阅读更多内容

我本以为在IE8“IE8标准模式”中,这种骇人的神奇范围属性会消失。啊。。。哦,好吧。