树JavaScript代码不适用于Internet explorer

树JavaScript代码不适用于Internet explorer,javascript,jquery,html,css,list,Javascript,Jquery,Html,Css,List,我需要帮助修复JavaScript程序上的错误。这个程序在Google chrome和firefox上运行得很好,但是代码在internet explorer 8上不起作用,出现了下面提到的一个奇怪错误。请有人给我一个方案。下面给出了fiddle链接 错误是: SCRIPT438: Object doesn't support property or method 'keys' File: treelist.js, Line: 12, Column: 13 谢谢IE8不支持成员声明末尾的

我需要帮助修复JavaScript程序上的错误。这个程序在Google chrome和firefox上运行得很好,但是代码在internet explorer 8上不起作用,出现了下面提到的一个奇怪错误。请有人给我一个方案。下面给出了fiddle链接

错误是:

SCRIPT438: Object doesn't support property or method 'keys'
File: treelist.js, Line: 12, Column: 13



谢谢

IE8不支持成员声明末尾的逗号

尝试删除它们,它应该可以工作:

 dataSource = {
        "Watch": {
            "Titan": {},
            "parent": {
                "leaf1": {},
                "leaf2": {}
            }, <-- remove this
        }
您可以通过添加以下内容来解决此问题:

if (!Object.keys) {
   Object.keys = function(obj) {
      var keys = [];

      for (var i in obj) {
         if (obj.hasOwnProperty(i)) {
            keys.push(i);
         }
      }  

      return keys;
   };
}

对于JS中的树结构的解释来说,模式太复杂而且有点奇怪

如果您有机会将其重新设计为具有以下内容:

var dataSource = {
            name : "Watch",
            nodes : [
                {
                 name : "Titan",
                 nodes: [],
                },
                {
                 name : "parent",
                 node : [
                     {
                      name : "leaf1",
                      nodes : []
                     },
                      {
                      name : "leaf2",
                      nodes : []
                      }
                 ]
                },
            ]
        };

您的代码可以大大减少,并且在没有黑客攻击的情况下,在没有烦人的跨浏览器内容的情况下运行良好。

@user3237973立即尝试!我忘了提到IE8中的Object.keys问题。。。(编辑)你能给我一把小提琴吗。。。我听不懂你说的话,我会尽力跟你走的谢谢
if (!Object.keys) {
   Object.keys = function(obj) {
      var keys = [];

      for (var i in obj) {
         if (obj.hasOwnProperty(i)) {
            keys.push(i);
         }
      }  

      return keys;
   };
}
var dataSource = {
            name : "Watch",
            nodes : [
                {
                 name : "Titan",
                 nodes: [],
                },
                {
                 name : "parent",
                 node : [
                     {
                      name : "leaf1",
                      nodes : []
                     },
                      {
                      name : "leaf2",
                      nodes : []
                      }
                 ]
                },
            ]
        };