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)将变量重命名为与此预定义全局不冲突的内容.