IE 11 AngularJS error - Object doesn't support property or method 'from'

14,957

Solution 1

As Array.from method is not supported by IE, you can try to use:

[].slice.call(document.getElementsByTagName('span')).forEach(function(v) {});

This doesn't require usage of any 3rd party libraries.

Solution 2

You could use an ES2015 polyfill, like es6-shim, Array.from or Babel polyfill

Solution 3

As explained by Mozilla here, the Array.from function is not yet supported by IE

Browser compatibility

Solution 4

you can use instead _underscore.js with function _.toArray(document.getElementsByTagName('span'))...

FYI:

'Array.from' not supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards, Internet Explorer 9 standards, Internet Explorer 10 standards, Internet Explorer 11 standards. Not supported in Windows 8.1.

source

Share:
14,957
notAChance
Author by

notAChance

Updated on June 10, 2022

Comments

  • notAChance
    notAChance almost 2 years

    In my JavaScript I have a function detectEnvironmentAndGetLEAndDepot() which is called onload via HTML. I'm working with wicket, and need to take values held in the back-end, so I fire them to the screen, hide them, and search the <span> values from my JS for the name value, for example if(v.getAttribute('name') === 'LE'){do stuff} or if(v.getAttribute('name') === 'depot'){do stuff} (I'm sure not the most elegant solution, but I needed a quick one!). Then within the function detectEnvironmentAndGetLEAndDepot() I do a bit of formatting etc so the data is usable.

    detectEnvironmentAndGetLEAndDepot() function (quite long, only relevant part) -

    detectEnvironmentAndGetLEAndDepot = function() {
    
        Array.from(document.getElementsByTagName('span')).forEach(function(v) {
    
    //Search name tag for particular names, then do formatting
    }
    

    When I open this in IE11 I get the error in a popup SCRIPT438: Object doesn't support property or method 'from' which is related to the first line of the method above - the Array class. Help much appreciated.

  • notAChance
    notAChance over 8 years
    This seems to be working. However I changed my code back to Array.from - and it worked also. My app seems incredibly temperamental (in IE), sometimes it works sometimes it doesn't. On top of this, as soon as I open Developer Tools, everything breaks... I don't even have a starting position. I HATE IE.
  • ron_g
    ron_g over 4 years
    @notAChance I've never used Angular, but I came across this when looking for help on the same issue (also using Array.from()). It sounds like your code's temperament could be related to the same issue; being loaded at the wrong time/before the document is loaded.