Почему у меня эта ошибка: объект не поддерживает свойство или метод "forEach" для Internet Explorer?

Я работаю над Javascript на плагине jenkins с помощью maven, и у меня есть этот код:

   function arrayElements(element, index, array) 
     {
         var arrayPaths = element.split("");
         var projectSource = arrayPaths[2];
         var array = element.split("_");
         if (projectSource === global ) {             
             if (array[2]===filtro){
             document.getElementById("source").options.add(new Option(arrayPaths[3], element));
             }
         }
     }
    function fillCompiledSource(object, projects)
    {
        document.getElementById("source").innerHTML = "";        
        global = document.getElementById("branches").value;     
        projects.forEach(arrayElements)
    }
    var projects = new Array();</script><script>
    function fillCombo()
    {
         document.getElementById("source").innerHTML = "";
         global = document.getElementById("branches").value;     
         var array = document.getElementById("branches").value.split('/');
         global = array[1];
         projects.forEach(arrayElements)       
    }

это сбой только в internet explorer и только когда режим документа является стандартом IE8, я не знаю, в чем причина и как я могу это решить..

Pd: Internet explorer 10

2 ответов


Да, это потому, что IE8 не реализовать Array.forEach (ни много других, более современных методов в JS). Если вам нужно работать в IE8, вам придется ШИМ это (см. раздел совместимость).

кстати, MDN также имеет ресурсы для большинства других неподдерживаемых методов.


Это может помочь. Чтобы решить проблему в jQuery:

//This will fail in IE8
myObject.each(function(index, value){
 //your code goes here
});

//This will work in IE8 and all modern browsers
$.each(myObject, function(index, value){
 //your code goes here
});