IE9 массив не поддерживает indexOf - PullRequest
9 голосов
/ 17 октября 2011

На основании 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 ]

12 голосов
/ 17 октября 2011

Вы уверены, что ваша страница работает в режиме IE9? Проверьте инструменты разработчика (F12). Если у вас старый DOCTYPE, вы можете видеть свою страницу в режиме IE8 / 7, поэтому indexOf не поддерживается. Если вы работаете в режиме IE9, то он работает просто отлично.

0 голосов
/ 17 октября 2011

Это может помочь, если вы объявите массив явно:

var a = new Array(1,2,3);
a.indexOf(2);
0 голосов
/ 17 октября 2011

ваш код выглядит правильно, а эта таблица совместимости показывает, что IE9 должен поддерживать indexOf() и проверяет ваш настоящий браузер на совместимость.

попробуйте открыть его и взгляните на ваш результат. возможно вы используете IE в режиме совместимости для IE7 / 8 или что-то еще.

этот jsfiddle работает в моем IE9 - пожалуйста, попробуйте это тоже.

...