IE9数组不支持indexOf

时间:2011-10-17 10:05:08

标签: javascript internet-explorer-9

基于http://ie.microsoft.com/testdrive/HTML5/ECMAScript5Array/Default.html,我认为IE9支持数组中的indexOf,但以下中断。知道为什么吗?

<script type="text/javascript">
    var a = [59, 20, 75, 22, 20, 11, 63, 29, 15, 77]; 
    var result = a.indexOf(32);//
    document.write(result);
</script>

错误信息如下:

SCRIPT438: Object doesn't support property or method 'indexOf' 

test.php,第9行第1个字符

3 个答案:

答案 0 :(得分:12)

您确定您的网页在IE9模式下运行吗?检查开发工具(F12)。如果您有旧的DOCTYPE,您可能会在IE8 / 7模式下看到您的页面,因此不支持indexOf。如果您在IE9模式下运行,那么它可以正常工作。

答案 1 :(得分:0)

您的代码看起来正确,this compatibility table表明IE9应该支持indexOf()并检查您的实际浏览器是否兼容。

尝试打开它并查看结果。也许你在IE7 / 8或其他东西的兼容模式下运行IE。

this jsfiddle适用于我的IE9 - 请尝试一下。

答案 2 :(得分:-2)

如果明确声明数组可能会有所帮助:

var a = new Array(1,2,3);
a.indexOf(2);