IE8中的Javascript错误:未实现

Fuu*_*Fuu 10 javascript internet-explorer internet-explorer-8

这个问题让我很困惑,因为代码看起来完全无害.

IE8通过以下消息暂停脚本执行:

未实现.map.js行:66 char:5

这是代码中的一个片段:

63 if(data.map[x] !== undefined && data.map[x][y] !== undefined) {
64              
65   left = (x - data.dim.x_min)*32 + 30;
66   top = (data.dim.y_max - y)*32 + 30;
67
68  /* do stuff */
XX }
Run Code Online (Sandbox Code Playgroud)

debug info:x:263 data.dim.x_min:263 y:172 data.dim.y_max:174

数据是从JQuery Ajax调用返回的对象.这适用于Firefox 3.0和3.5,safari 4.0.2,我在IE8中查看页面时才发现此错误.强制IE8进入IE7模式不会使错误消失.

我没有IE7来调试,但我有一个测试人员说它在IE7中也不起作用.

Fuu*_*Fuu 20

代码中使用的变量"top"是DispHTMLWindow2(最外层窗口对象)类型的对象,并且已经被浏览器使用并且导致冲突,因为该对象不能成为赋值操作的目标.似乎Firefox和Safari忽略了这一点,而IE不允许脚本覆盖它.

解决方案:

1)声明top您使用的是局部变量来定义它的使用范围.

2)将变量重命名为与此预定义全局不冲突的内容.

您不应使用的其他变量名称的描述

  • 自"中止操作"以来最有用的错误消息 (4认同)