排序Javascript不使用Internet Explorer
我需要JavaScript代码方面的帮助,它似乎无法与InternetExplorer8正常工作,在我开始调试它时,给了我一大堆错误。首先,它说Internet Explorer 8不支持object.keys和object.getOwnPropertyByNames,其次,也不支持ClassList。我的代码在Google Chrome和Firefox上运行良好,但在Internet Explorer上崩溃。需要帮助排序Javascript不使用Internet Explorer,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我需要JavaScript代码方面的帮助,它似乎无法与InternetExplorer8正常工作,在我开始调试它时,给了我一大堆错误。首先,它说Internet Explorer 8不支持object.keys和object.getOwnPropertyByNames,其次,也不支持ClassList。我的代码在Google Chrome和Firefox上运行良好,但在Internet Explorer上崩溃。需要帮助 谢谢在您的页面中添加polyfill,例如: ... 另一个问题
谢谢在您的页面中添加polyfill,例如:
...
另一个问题是您多次使用console.log
,这在IE8中没有定义,除非您打开了DevTools。您可能希望删除这些行,或在JS顶部添加一行,如下所示:
if(!'console'在窗口中){console={log:function(){};}
另请参见:。如果它说东西不受支持,它可能不受支持,您必须搜索每一个不受支持的东西,并找到IE8的解决方法。这些都是常见的问题,要解决这些问题应该不难。好吧,你已经解决了这些问题。如果不支持这些方法,则需要填充垫片/多边形填充,或者需要重写代码。有谁能帮我解决这个问题吗
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));}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<!--[if lt IE 9]>
<script type="text/javascript" src="aight.min.js"></script>
<![endif]-->
<script type="text/javascript" src="YOUR OTHER SCRIPTS HERE"></script>
</head>
<body>
...
<script type="text/javascript" src="MAYBE OTHER SCRIPTS HERE"></script>
</body>
</html>