Я пытаюсь построил приложение WebSocket в IE9, но у меня есть следующий Javascript ошибка:Array.map не работает в IE9
IE9 консоль:
SCRIPT438: Object doesn't support property or method 'map'
websock.js, line 211 character 5
websock.js функция:
function send_string(str) {
//Util.Debug(">> send_string: " + str);
api.send(str.split('').map(
function (chr) { return chr.charCodeAt(0); }));
}
Также в консоли IE9 str = the text I entered
. и если я сначала попытаюсь разбить его, я получаю правильный массив строки, но карта еще не работает.
Например, если я пытаюсь отправить «текст»:
str.split("") = ['t','e','x','t']
И я нашел это в консоли. Но к сожалению .map не работает. Какие-либо предложения?
PS:
Я попытался изменить код W3School this link:
document.write(str.split("").map(
function (chr) { return chr.charCodeAt(0); }) + "<br />");
И карта работает здесь с желаемым результатом использования IE9!
Я думаю, что вы правы, потому что после добавления 'if (! ('Map' в Array.prototype)) { Array.prototype.map = function (mapper, that/* opt * /) { var other = new Array (this.length); для (var i = 0, n = this.length; i
glarkou
Я обычно добавляю в настоящее время, и он позаботится об этом.См. Http://stackoverflow.com/questions/3726357/why-does-ie9-switch-to-compatibility-mode-on-my-website. Однако вы добавили эту функцию, чтобы сделать ее совместимой с IE8 и ниже. IE8 и ниже не имеют других функций, таких как indexOf, которые тоже укусят вас в будущем. – ustun
Кроме того, если вы откроете Инструменты разработчика в IE, он скажет вам, в каком режиме он работает сейчас. – ustun