【发布时间】:2014-02-03 13:22:06
【问题描述】:
我的 JavaScript 需要一些帮助。我的 JavaScript 代码不能在 Internet Explorer 8 上运行,它会在 IE 控制台上显示空白和一些错误代码,请建议我一些解决方案以使此 JavaScript 代码在 Internet Explorer 上运行。以下是小提琴的链接:
错误代码
SCRIPT438:对象不支持属性或方法“键” 文件:treelist.js,行:12,列:13
var dataSource = {
"Watch": {
"Titan": {},
"parent": {
"leaf1": {},
"leaf2": {}
},
}
},
traverseObject = function (obj) {
var ul = document.createElement("ul"),
li;
for (var prop in obj) {
li = document.createElement("li");
li.appendChild(document.createTextNode(prop));
li.onclick = function(e) {
var classNames = e.currentTarget.className;
if (classNames.indexOf("hidden") == -1) {
e.currentTarget.className += "hidden";
} else {
e.currentTarget.className = e.currentTarget.className.replace("hidden", "");
}
e.stopPropagation();
}
if (typeof obj[prop] == "object" && Object.keys(obj[prop]).length) {
li.appendChild(traverseObject(obj[prop]));
} else {
li.className += "leaf";
}
ul.appendChild(li);
console.log(ul);
}
return ul;
};
window.onload = function () {
document.getElementById("dvList1").appendChild(traverseObject(dataSource));
}
【问题讨论】:
-
一般经验法则:如果您有错误代码或错误消息,请将其包含在您的问题中。
-
但看起来问题在于您使用的是 IE8 中不存在的 JavaScript 功能。查看this link 了解更多信息。您已将此问题标记为
jquery,但没有 jquery 代码。 jQuery 将是您的问题的合理解决方案,因为它会为您解决 X-Browser 的麻烦。 -
错误代码是:SCRIPT438:对象不支持属性或方法“键”文件:treelist.js,行:12,列:13
-
请查看
Object.keys(obj[prop]).length这行代码。该错误明确指出Object不支持名为“keys”的属性/方法。因此,您的代码中必须有一些地方使用名为“keys”的方法扩展Object。但我在你的代码中没有找到。 -
是的,确实检查过了,仍然无法在 IE 上运行
标签: javascript jquery internet-explorer