Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

Dialogs, Menus, Selects won't open in IE11 0.10.1-rc4 #3927

Closed
stevenmiles opened this issue Jul 28, 2015 · 11 comments
Closed

Dialogs, Menus, Selects won't open in IE11 0.10.1-rc4 #3927

stevenmiles opened this issue Jul 28, 2015 · 11 comments
Assignees
Milestone

Comments

@stevenmiles
Copy link

I use a dialog for login. This means that the first thing that happens for my application fails in IE11 without being able to continue. The problem can be reproduced in the documentation samples for dialog in "Release 0.10.1-rc4" and "HEAD (MASTER)"

The console shows the following stacktrace

TypeError: Assignment to read-only properties is not allowed in strict mode
   at E (https://material.angularjs.org/HEAD/angular-material.min.js:7:23232)
   at g (https://material.angularjs.org/HEAD/angular-material.min.js:7:23162)
   at Anonymous function (https://material.angularjs.org/HEAD/angular-material.min.js:7:22439)
   at Anonymous function (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:120:172)
   at n.prototype.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:134:482)
   at n.prototype.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:132:1)
   at n.prototype.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:135:267)
   at Anonymous function (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:252:124)
   at c (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js:35:212)

image

Edit:
Seems that the same issue is affecting md-menu and md-select as well.

@stevenmiles stevenmiles changed the title Dialogs won't open in IE11 0.10.1-rc4 Dialogs, Menus, Selects won't open in IE11 0.10.1-rc4 Jul 28, 2015
@rhnatiuk
Copy link

Just planned to report this. Reproduces in IE11 on HEAD (master) as well.

@rhnatiuk
Copy link

Might be off-topic, but still. There are so many issues with e.g. select in IE10/IE11. Seems that nobody is testing with those browsers. If the reason is that testers/authors do not have access to IE10/IE11 (e.g. because running on Linux or Mac), then modern.IE might be the answer - Microsoft-provided virtual machine images for all major VMs, fully configured, for exactly this purpose.

@stevenmiles
Copy link
Author

On a similar off topic issue, what does it mean to have a release candidate of a point release of an alpha? It seems that massive re-factorings happen, introducing new bugs, between "release candidates". This makes sense for an alpha, but not so much when marking releases as RC. Would this just lead to a continuous stream of release candidates, the later fixing the bugs introduced in the previous?

@kschwidder
Copy link

+1

I have tested the version under MS Edge of Win10 and it works :-)
The real question is how long should we support IE 11. I would personally top IE 10.

@Londovir
Copy link

Tracing the problem has been difficult so far. IE11 has the problem at line 2502 in the current HEAD source, buried within the findParent method of the InterimElement function/object definition. The problem is that the variable parent is somehow set to be the Window object, and IE11 refuses to execute line 2502 because it is attempting to set the Window object variable parent to a different element (which technically is supposed to be the popup container DIV).

In Chrome, that exact same line executes, because in Chrome at that point the variable parent is not set to the Window object, and therefore I presume the variable parent is not a read-only variable at that point.

However, I cannot see where parent is getting the Window object value in IE11 and can't debug this more right now.

As a side note, if Edge does not get backported to Win 7 and Win 8.x, then IE11 will be the version X browser of note for a fairly wide installation base of users. So long as those versions of Windows (especially Win 8.1) remain in support lifespan by Microsoft, and IE11 remains the most recent browser available to them, I cannot see how this project could fail to support IE11. Although, as @rhnatiuk points out, I too have become increasingly disenchanted with the way that IE11 support is being handled, with many notable bugs appearing in the chain that are easily detectable under IE11 (such as this one, which literally breaks multiple components), I can understand some issues (such as the horrifically slow running md-select, md-tab, and other components under IE11) can be pushed to backlog because they may be specific to IE11...but I'm surprised that some issues make it into a rolling release which are so clearly broken in a mainline browser. I wish I could assist in fixing some of these, but I'm well aware that my coding skills are not as polished and refined as others, and although I can hack up fixes that patch some of these IE11 issues for my own uses they are not PRD worthy I am certain.

@rhnatiuk
Copy link

@kschwidder, you got it wrong, probably. Edge will be Windows 10 only, or so it seems at the moment, and IE11 is as good as it ever gets on Windows 7. So yes, supporting IE11 is kind of must for any real-life framework to be used in corporate apps. IE10 is perhaps not that important anymore, but I can tell you that many companies are still on IE9, and, believe me or not, even IE8 (and I am not talking about "garage"-scale here).

@kschwidder
Copy link

@rhnatiuk I fully agree. However IE 8-10 is out from our support history and we only cover IE 11 today.
It would be beneficial if IE testing would be in the CI part of the framework soon

@stevenmiles
Copy link
Author

@kschwidder The discussion support for old versions of IE is largely irrelevant to this discussion. Any discussion of dropping IE11 support is premature to say the least, and not helpful.

@rrajewski
Copy link

Looks like the findParent function is just missing a declaration for the parent variable.

function findParent(element, options) {
    var parent; //missing

    if (angular.isFunction(options.parent)) {...

@ThomasBurleson
Copy link
Contributor

@rrajewski - can you confirm that this SHA af05235 fix resolves your issues ?

BTW - thanks for the catch within findParent().

Angular Material builds ensures that 'use strict;' will be used for all of our modules. Unfortunately, window.parent already exists so strict mode will not fail at runtime.

@rrajewski
Copy link

Yes, that fixes it for me using IE 11.

kennethcachia pushed a commit to kennethcachia/material that referenced this issue Sep 23, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants