Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

IE8: View not rendering | angular.min.js, Line: 84, Column: 219 | SCRIPT445: Object doesn't support this action | apply?function() #5400

Closed
defa0009 opened this issue Dec 13, 2013 · 30 comments

Comments

@defa0009
Copy link

Hi,

I'm under the gun here... we went with AngularJS under the notion it was supported in IE8. When I run the app we are getting

SCRIPT445: Object doesn't support this action
File: angular.min.js, Line: 84, Column: 219

I am using the latest build of AngularJS. I don't think IE8 likes the apply function.

Any help will be greatly appreciated!

return e.apply ? function () {
var a = [];
q(arguments, function (b) {
a.push(d(b));
});
return e.apply(b, a);
} : function (a, b) {
e(a, null == b ? "" : b);
};

@pvdleek
Copy link

pvdleek commented Dec 15, 2013

Same problem here, I've been googling for hours, implemented all the recommend solutions. Nothing worked, so I tried the homepage of AngularJS. It turns out that I get the exact same error there...
I'm testing with Windows 7, IE11 in IE8 document mode. The error is:
SCRIPT445: Object doesn't support this action
File: angular.js, Line: 9222, Column: 7

@defa0009
Copy link
Author

Ya you're right I get the same error there as well...

@defa0009
Copy link
Author

FYI I tested in versions 1.2.4 and 1.2.5

@ghost ghost assigned bradlygreen and tbosch Dec 19, 2013
@bradlygreen
Copy link
Contributor

Can you please provide an example that reproduces this issue via plunker or similar?

@IgorMinar
Copy link
Contributor

angularjs.org was mentioned already, but if we had a plunker or fiddle with tiny app that also suffers from this issue in IE8 it would be faster for us to create a fix.

@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

Hi, did you test on real IE8?
It seems to work there...

@isometriks
Copy link

I had this issue and fixed it with

var console = console || {};

Not sure if specific to me or not.

@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

The line that is referred to is the check whether console.log has the apply function (so we can use it later).
However, this check throws the mentioned error, even before calling the apply function (tested in the dev console of IE11 in IE8 mode, just enter console.log.apply without a function call).
We have that test for .apply there especially for windows. We could extend it with a try catch when we do the test itself, as the mentioned error is catchable.

@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

Here is a jsfiddle: http://jsfiddle.net/A59tX/show/

@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

Same problem: #5147

@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

Here is the updated jsfiddle with my ci build: http://jsfiddle.net/A59tX/2/show/
To test open it in IE11/10 in IE8 document mode (the last fiddle throws an error then, this no more)

tbosch added a commit to tbosch/angular.js that referenced this issue Dec 19, 2013
In IE8 the result object
of calling `node.querySelectorAll` does not have a `hasOwnPropery`
function. However, it should be usable with `forEach`.

Related to angular#5400.
tbosch added a commit to tbosch/angular.js that referenced this issue Dec 19, 2013
In IE8, reading `console.log.apply` throws an error.
Catching this errow now.

Fixes angular#5400. Fixes angular#5147.
tbosch added a commit that referenced this issue Dec 19, 2013
In IE8 the result object
of calling `node.querySelectorAll` does not have a `hasOwnPropery`
function. However, it should be usable with `forEach`.

Related to #5400.
@tbosch tbosch closed this as completed in 4f5758e Dec 19, 2013
@defa0009
Copy link
Author

I opened your jsfiddle in IE8 document mode and still get the error...

SCRIPT445: Object doesn't support this action
File: angular.js, Line: 9321, Column: 7

@pvdleek
Copy link

pvdleek commented Dec 19, 2013

That's interesting, I have the same problem here in the real IE8. But in IE11 in IE8 document mode your updated jsfiddle works like a charm!

@defa0009
Copy link
Author

I should have been more clear... I'm also using IE11 and running the jsfiddle in IE8 document mode and it fails with the same error.

@tbosch tbosch reopened this Dec 19, 2013
@tbosch
Copy link
Contributor

tbosch commented Dec 19, 2013

@petebacondarwin could you double check? I am away until Xmas...

@ghost ghost assigned petebacondarwin Dec 20, 2013
@mgol
Copy link
Member

mgol commented Dec 20, 2013

@tbosch @petebacondarwin Remember that IEs<10 don't have the console object at all unless you open developer tools on the particular site. That can introduce tricky bugs that clients reproduce easily but devs "for some reason" don't. :-) Might that be the case here?

@petebacondarwin
Copy link
Contributor

IE11 in IE8 doc mode does not fail for me with @tbosch's updated fiddle. I don't have a real IE8 to test but we do run IE8 in our CI tests so I would expect that this would be flagged there if it failed... If not then someone needs to write a unit test to cause it to happen.

@pvdleek
Copy link

pvdleek commented Dec 21, 2013

For me neither, the fiddle is failing in the real IE8...

@mgol
Copy link
Member

mgol commented Dec 21, 2013

I've just checked on the real IE8 in a Windows XP VM and both fiddles work fine.

@defa0009
Copy link
Author

the fiddle fails for me in IE11 in IE8 document mode....

go to http://angularjs.org/ and put it in IE8 document mode and it will fail there as well...

@caitp
Copy link
Contributor

caitp commented Dec 21, 2013

I don't think those "emulated modes" are really supported by angular (since we don't test against them), or MS themselves (http://msdn.microsoft.com/en-us/library/ie/dn384051(v=vs.85).aspx)

@mgol
Copy link
Member

mgol commented Dec 21, 2013

Yeah, IE document modes should die in a fire, what it really creates is O(n^2) different IE versions. I hope they get completely removed in IE12 (IE11 still has document.documentMode === 11).

Anyway, considering @tbosch made it work in IE11 in IE8 doc mode and native IE8 doesn't experience the bug, I guess it can be merged & closed.

EDIT: document modes were deprecated by MS only starting from IE11 (after all these years they learned what most of use had known already for a long time).

@defa0009
Copy link
Author

Guess I'll need a VM just to test on IE8 then...

Seems the behavior is inconsistent though regardless.

@pvdleek That's interesting, I have the same problem here in the real IE8. But in IE11 in IE8 document mode your updated jsfiddle works like a charm!

@tbosch
Copy link
Contributor

tbosch commented Dec 22, 2013

Just a note:

  • don't open the jsfiddle without the show suffix, as this will open the
    jsfiddle editor, which does not work on ie8
  • angularjs.org includes other scripts (eg for full text search) that don't
    work with ie8

Sent from my iPhone

On Dec 21, 2013, at 2:00 PM, defa0009 notifications@github.com wrote:

the fiddle fails for me in IE11 in IE8 document mode....

go to http://angularjs.org/ and put it in IE8 document mode and it will
fail there as well...


Reply to this email directly or view it on
GitHubhttps://github.com//issues/5400#issuecomment-31073273
.

@tbosch
Copy link
Contributor

tbosch commented Dec 22, 2013

Ah, and for testing you need to open the ie dev tools first and then
reload...

Sent from my iPhone

On Dec 21, 2013, at 2:22 PM, defa0009 notifications@github.com wrote:

Guess I'll need a VM just to test on IE8 then...

Seems the behavior is inconsistent though regardless.

@pvdleek https://github.com/pvdleek That's interesting, I have the same
problem here in the real IE8. But in IE11 in IE8 document mode your updated
jsfiddle works like a charm!


Reply to this email directly or view it on
GitHubhttps://github.com//issues/5400#issuecomment-31073752
.

@ghost ghost assigned tbosch Dec 30, 2013
@wesleycho
Copy link
Contributor

Just to comment on this issue - we have an app in production that supports IE8, and we have not had a problem with this once we implemented window.console = window.console || {}.

@tbosch
Copy link
Contributor

tbosch commented Jan 2, 2014

Hi all,
just double checked in native IE8, IE10 in IE8 compat mode on Win7 and IE11 in IE8 compat mode on Win8. On native IE8 I tested with closed Dev Tools and open Dev Tools.

It works fine on all of those configurations!

By the way, my first jsfiddle used Angular 1.2.5 which still contained the bug / not my PR. Angular 1.2.6 does already contain the PR.

You can double check with this fiddle that is using Angular 1.2.6: http://jsfiddle.net/A59tX/4/show

Closing this now.

@tbosch tbosch closed this as completed Jan 2, 2014
jamesdaily pushed a commit to jamesdaily/angular.js that referenced this issue Jan 27, 2014
In IE8 the result object
of calling `node.querySelectorAll` does not have a `hasOwnPropery`
function. However, it should be usable with `forEach`.

Related to angular#5400.
jamesdaily pushed a commit to jamesdaily/angular.js that referenced this issue Jan 27, 2014
In IE8, reading `console.log.apply` throws an error.
Catching this errow now.

Fixes angular#5400. Fixes angular#5147.
jamesdaily pushed a commit to jamesdaily/angular.js that referenced this issue Jan 27, 2014
In IE8 the result object
of calling `node.querySelectorAll` does not have a `hasOwnPropery`
function. However, it should be usable with `forEach`.

Related to angular#5400.
jamesdaily pushed a commit to jamesdaily/angular.js that referenced this issue Jan 27, 2014
In IE8, reading `console.log.apply` throws an error.
Catching this errow now.

Fixes angular#5400. Fixes angular#5147.
@sohailarif
Copy link

Hi,

No doubt jsfiddle/Codepen are best site(s) but both have abnormal behavior in IE8. I would recommend people that are still using IE8 to try the new online HTML editor.

http://www.thesstech.com/youreditor

@PrashanthSuriyanarayanan
Copy link

PrashanthSuriyanarayanan commented May 24, 2016

For those who is still facing the issue, try adding the polyfill for console. It worked for me in IE 7 & 8.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.