【问题标题】:Javascript error in IE8: Not implementedIE8 中的 Javascript 错误:未实现
【发布时间】:2018-02-13 03:25:47
【问题描述】:

这真的让我很困惑,因为代码看起来完全无害。

IE8 停止脚本执行并显示一条消息:

未实施。 map.js 行:66 字符: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 }

调试信息: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 中也不起作用。

【问题讨论】:

  • 看起来不错...我也很想知道为什么这不起作用。可以一步步调试吗?

标签: javascript internet-explorer internet-explorer-8


【解决方案1】:

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

解决方案:

1) 声明你使用的 top 作为局部变量来定义它的使用范围。

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

Description of other variable names you shouldn't use

【讨论】:

    【解决方案2】:

    IE 8 有一个很棒的 javascript 调试器。您可能希望在错误之前的某处添加断点并逐步执行代码以查看数据是否存在异常。 IE8 对列表中的尾随逗号很挑剔,这可能就是为什么您只会在其中收到错误的原因。您可以使用 F12 拉起调试器,单击脚本并选择开始调试。您可以通过单击行号所在的边距来添加断点。

    【讨论】:

    • F12 评论对我来说很方便。我想知道如何在 IE 中获得功能类似于 Firebug 的东西,如果只是基础知识的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多