Opened 6 years ago

Closed 4 years ago

Last modified 4 years ago

#17718 closed defect (fixed)

dojo.io.script fails for IE11

Reported by: blacknugget Owned by: dylan
Priority: undecided Milestone: 1.7.9
Component: IO Version: 1.7.5
Keywords: Cc:
Blocked By: Blocking:

Description

In releases 1.4.5 - 1.7.5 dojo.io.script will not work with IE11

This is due to a deprecated onreadystatechange

In 1.8 the dojo.io.script uses a refactored dojo.request.script plugin that has a more intelligent has('script-readystatechange') detection instead of just doing a browser check.

Doing "dojo.isIE" checks is probably not going to scale well for the legacy Dojo codebase, as Microsoft decides each iteration that it has to become more W3C compliant with future IE11, etc. releases.

Please patch the broken code

var loadEvent = dojo.isIE ? "onreadystatechange" : "load",

with a proper "has" detection routine instead of an outdated browser check.

Change History (4)

comment:1 Changed 4 years ago by dylan

Milestone: tbd1.7.9
Owner: set to dylan
Status: newassigned

comment:2 Changed 4 years ago by dylan

Resolution: fixed
Status: assignedclosed

I've fixed this for 1.7 via https://github.com/dojo/dojo/commit/ec673095ebe9574ff3b963219432435e237805b0

The change for 1.4 through 1.6 is more involved, as there is no dojo/has module available, and probably of limited value given that most users are on 1.7+ now. That said, we would accept a pull request against 1.6 for this change, so if anyone wants to work on that, please re-open the ticket and create a pull request per our contribution guidelines, https://github.com/dojo/dojo/blob/master/CONTRIBUTING.md

comment:3 Changed 4 years ago by bill

This change doesn't make any sense to me. dojo.isIE is false for IE11, so didn't the old code already work on IE11?

PS: Also, I thought Dojo 1.7 isn't supposed to support IE11 at all.

Last edited 4 years ago by bill (previous) (diff)

comment:4 Changed 4 years ago by dylan

It seemed safe to me to backport the current approach to detecting the feature, to make 1.7 more consistent with later versions.

You're right though in that both Dojo 1.7 doesn't officially support IE11, and that dojo.isIE in 1.7 should not return true for IE11.

Note: See TracTickets for help on using tickets.