I need help with my JavaScript code, it dont seem to work properly with internet explorer 8, giving me a bundle of errors, while i start debugging it. First it says that object.keys and object.getOwnPropertyByNames not supported by Internet Explorer 8, secondly ClassList is also no supported. My code works fine with Google Chrome and Firefox, but it crashes on Internet Explorer.Need help.
var dataSource = ({
"Pen": ({
"Parker": ({
"P1": ({}),
"P2": ({})
}),
"Cello": ({
"C2": ({}),
"C1": ({})
})
})
}),
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) {
e.currentTarget.classList.toggle("hidden");
e.stopPropagation();
}
if (typeof obj[prop] == "object" && Object.keys(obj[prop]).length) {
li.appendChild(traverseObject(obj[prop]));
} else {
li.classList.add("leaf");
}
ul.appendChild(li);
console.log(ul);
}
return ul;
},
sortedObject = function (obj) {
document.getElementById("dvList2").innerHTML = "";
var ul = document.createElement("ul"),
li;
var keys = Object.keys(obj).sort();
for (prop in keys) {
li = document.createElement("li");
li.appendChild(document.createTextNode(keys[prop]));
li.onclick = function(e) {
e.currentTarget.classList.toggle("hidden");
e.stopPropagation();
}
if (typeof obj[keys[prop]] == "object" && Object.keys(obj[keys[prop]]).length) {
li.appendChild(sortedObject(obj[keys[prop]]));
} else {
li.className += "leaf";
}
ul.appendChild(li);
console.log(ul);
}
return ul;
};
window.onload = function () {
document.getElementById("dvList1").appendChild(traverseObject(dataSource));
document.getElementById("hlGSL").onclick = function(){document.getElementById("dvList2").appendChild(sortedObject(dataSource));}
}
Thank you