2017-05-20 1 views
2

Ich habe ein Diagramm aus einer SharePoint-Liste erstellt und es funktioniert in Chrome aber nicht in IE 11. Als ich zum Debuggen in IE 11 ging und ich bekomme der Fehler SCRIPT438: Object doesn't support property or method 'values'. Ich bin ziemlich neu in JavaScript.SCRIPT438: Objekt unterstützt keine Eigenschaft oder Methode 'Werte'

Kann mir jemand sagen, was ein Update sein kann oder was ich fehle

Ich bin mit chart.js und 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> 

die Fehler aus der Leitung kommen, mit

... 
var data = { 
      labels: Object.keys(activeOrdered), 
... 

Antwort

2

Starten der Fehler auftritt, weil Object.values() nicht im Internet Explorer unterstützt.

siehe browser compatibility für Object.values()

hier eine Abhilfe ist, dass Sie stattdessen ...

data: Object.keys(activeOrdered).map(function(key) {return activeOrdered[key];}) 

und ...

data: Object.keys(inactiveOrdered).map(function(key) {return inactiveOrdered[key];}) 
+0

, dass der Fehler weggehen tat nutzen könnten, Allerdings wird dieser Code immer noch nicht im IE angezeigt, aber in Chrome wird das angezeigt, wenn ich nur 'data: Object.keys (inactiveOrdered) 'verwende, habe ich ein leeres Diagramm in beiden Browsern. – ShanayL

+0

Syntaxfehler bei Zeile 'Daten: Object.keys (activeOrdered) .map (Schlüssel => activeOrdered [Schlüssel]);' ... es scheint in Ordnung, ich muss es nur untersuchen, um zu sehen, wo es ist – ShanayL

+0

Bingo !!! Ich musste am Ende dieser Aussagen das '' 'ablegen. Ich danke dir sehr! – ShanayL

Verwandte Themen