我正在尝试在IE9中构建一个websocket应用程序,但我有以下Javascript错误:
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
中。如果我先尝试拆分它,那么我得到正确的字符串数组但仍然没有映射。
例如,如果我尝试发送“text”:
str.split("") = ['t','e','x','t']
我在控制台中找到了这个。但遗憾的是.map无效。有什么建议?
PS:
我尝试更改w3school代码this link:
document.write(str.split("").map(
function (chr) { return chr.charCodeAt(0); } ) + "<br />");
使用IE9,地图正在使用理想的结果!
答案 0 :(得分:3)
IE9支持地图,但很可能你的html页面是以怪癖模式呈现的,这就是原因。尝试添加doctype,看看是否能解决问题。
答案 1 :(得分:0)
根据the ES5 compatibility table,IE9确实支持Array#map
。访问http://kangax.github.com/es5-compat-table/并查看“此浏览器”列。
确保浏览器处于IE9模式。
答案 2 :(得分:-1)
FF实现map:
Array.prototype.hasOwnProperty('map') // true
IE没有实现map:
Array.prototype.hasOwnProperty('map') // false
抱歉,您似乎必须编写自己的map
功能代码。