我正在尝试调试IE ajax问题。我收集并存储在数组中的数据调用eachItem。然后使用eachItem.join('')将其转换为字符串。但是在它进入这一步之前我控制台.log数组和IE 10和11返回
function item() {
[native code]
}
eachItem.length的console.log返回1.但是我看不到内容。我后来将这些数据推送到ajax并获得一个空数组。但我试图先从这里开始,看看为什么IE似乎没有读取我的数组。
答案 0 :(得分:4)
Internet Explorer(11)有一个名为a
的全局函数,它是只读的。在item
之后,item="foo"
仍会显示
item.toString()
然而,它可以重新声明。在function item() {
[native code]
}
之后,var item = foo
显示
item.toString()
在小提琴代码中寻找`foo`
的使用
item
没有事先声明的第98行。我建议在使用之前声明item = serviceTitleRow + eachService + trip_charge;
可能会解决问题。
FWIW ,Javascript严格模式将未声明变量的赋值视为错误,并在大多数时间捕获此错误。由于函数名称标识符与变量标识符没有分隔的名称空间,因此允许重新分配函数名称的值。但是,在尝试更新item
的值时,IE中的严格模式会抛出不同的“只读属性不允许”错误,因此严格模式可能有助于在多个浏览器中更早地捕获此错误。
答案 1 :(得分:0)
我有一个未使用var关键字定义的变量。解决了我的问题。
答案 2 :(得分:0)
检查您的代码,以查找是否有任何尚未声明的变量,并且您是直接使用该变量。 例如: