Sha*_*ayL 4 ajax jquery json sharepoint-2013 chart.js
我有一个从SharePoint列表创建的图形,它在Chrome中工作,但在IE 11中不工作。当我去IE 11中调试时,收到错误消息SCRIPT438: Object doesn't support property or method 'values'。我对JavaScript相当陌生。
有人可以告诉我什么可能是修复程序,或者我缺少什么
我正在使用chart.js和ajax。
<script type="text/javascript" src="/sites/carm/Shared%20Documents/Chart.min.js"></script>
<script type="text/javascript" src="/sites/carm/Shared%20Documents/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$.ajax({
url: "/sites/carm/_api/web/lists/getbytitle('ATO%20Conditions')/items?$select=ID,Title,m4gs&$top=5000",
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: function(data) {
if (data.d.results.length > 0) {
var inactiveSet = {};
var activeSet = {};
var otherSet = {};
var totalActive = 0;
var totalInActive = 0;
var totalOther = 0;
var initZero = 0;
$.each(data.d.results, function(index, item) {
if (item.m4gs === "Completed") {
totalInActive++
if (item.Title in inactiveSet) {
inactiveSet[item.Title]++;
} else {
inactiveSet[item.Title] = 1;
activeSet[item.Title] = initZero;
otherSet[item.Title] = initZero;
}
} else if (item.m4gs === "Active") {
totalActive++
if (item.Title in activeSet) {
activeSet[item.Title]++;
} else {
inactiveSet[item.Title] = initZero;
activeSet[item.Title] = 1;
otherSet[item.Title] = initZero;
}
} else {
totalOther++
if (item.Title in otherSet) {
otherSet[item.Title]++;
} else {
inactiveSet[item.Title] = initZero;
activeSet[item.Title] = initZero;
otherSet[item.Title] = 1;
}
}
});
}
var inactiveOrdered = {};
var activeOrdered = {};
var otherOrdered = {};
Object.keys(activeSet).sort().forEach(function(key) {
activeOrdered[key] = activeSet[key];
});
Object.keys(inactiveSet).sort().forEach(function(key) {
inactiveOrdered[key] = inactiveSet[key];
});
Object.keys(otherSet).sort().forEach(function(key) {
otherOrdered[key] = otherSet[key];
});
var ctx = document.getElementById("myChart").getContext("2d");
var data = {
labels: Object.keys(activeOrdered),
datasets: [{
label: "Active",
fillColor: "steelblue",
data: Object.values(activeOrdered)
},
{
label: "Completed",
fillColor: "orange",
data: Object.values(inactiveOrdered)
}
]
};
....
</script>
Run Code Online (Sandbox Code Playgroud)
错误是从以下行开始的
...
var data = {
labels: Object.keys(activeOrdered),
...
Run Code Online (Sandbox Code Playgroud)
发生错误是因为Object.values()Internet Explorer不支持。
看到浏览器的兼容性为Object.values()
这是一种解决方法,您可以改用...
data: Object.keys(activeOrdered).map(function(key) {return activeOrdered[key];})
Run Code Online (Sandbox Code Playgroud)
还有...
data: Object.keys(inactiveOrdered).map(function(key) {return inactiveOrdered[key];})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4233 次 |
| 最近记录: |