SCRIPT438: объект не поддерживает свойства или методы 'values'
У меня есть график, созданный из списка SharePoint, и он работает в Chrome, но не работает в IE 11. Когда я пошел отлаживать в IE 11, и я получаю ошибку SCRIPT438: Object doesn't support property or method 'values'. Я довольно новичок в JavaScript.
Может ли кто-нибудь сказать мне, что может быть исправлением или чего мне не хватает
Я использую диаграмму.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>
Ошибка исходит из строки, начинающейся с
...
var data = {
labels: Object.keys(activeOrdered),
...
1 ответ:
Ошибка возникает потому, что,
Object.values()Не поддерживается в Internet Explorer.Смотрите совместимость с браузером для
Object.values()Вот обходной путь, который вы могли бы использовать вместо этого ...
data: Object.keys(activeOrdered).map(function(key) {return activeOrdered[key];})И...
data: Object.keys(inactiveOrdered).map(function(key) {return inactiveOrdered[key];})
Comments