Opened 12 years ago
Closed 7 years ago
#10777 closed defect (wontfix)
Dialog: dialog containing VML object causes errors requiring browser restart in IE8
Reported by: | navtej | Owned by: | bill |
---|---|---|---|
Priority: | high | Milestone: | future |
Component: | Dijit | Version: | 1.4.0 |
Keywords: | Cc: | [email protected]… | |
Blocked By: | Blocking: |
Description
Browser: Internet Explorer 8
OS: Windows XP
Steps to reproduce:
- open the attached file with Internet Explorer 8
- Click the "Show me!" button on the page to bring up the dialog containing VML.
- Close the dialog.
- Click the "Show me!" button a second time.
- see the error saying simply "Failed"
- after this any pages that use VML will throw this error until you restart the browser.
This is most likely a flaw in IE8, but it would be great to have some kind of workaround. VML is used in the place of SVG for IE and thus used by things like Google Maps to draw driving directions. This bug means we can't place a Google Map inside a dijit.Dialog, which seems like a pretty common use case.
Attachments (2)
Change History (11)
Changed 12 years ago by
Attachment: | ie8vml.html added |
---|
comment:1 Changed 12 years ago by
It appears that setting "autofocus=false" on the dialog might alleviate this.
comment:2 Changed 12 years ago by
The focus problem was fixed in [22268] but I get errors on your test page during page load (the parser tries to access child.nodeType etc. of the VML node), and on page unload for the same reason. IE is really touchy about what properties on VML nodes can be accessed. The same problems happen on 1.4 though. Leaving this open for now, not sure what we want to do about those errors.
comment:3 Changed 12 years ago by
Milestone: | tbd → 1.6 |
---|---|
Owner: | set to bill |
Status: | new → assigned |
Summary: | dijit.Dialog containing VML object causes errors requiring browser restart in IE8 → Dialog: dialog containing VML object causes errors requiring browser restart in IE8 |
Hmm, the fix in [22268] doesn't seem to work for me. IE8 throws a "Failed" exception accessing any attribute of the VML node in the test case, including node.scopeName.
I wonder if there is a better way than try/catch to weed out non-HTML nodes. Whatever fix we do needs to go into scan() in dojo/parser.js, and both findWidgets() and _getTabNavigable() in dijit/_base/manager.js.
Changed 11 years ago by
Attachment: | tryCatch.patch added |
---|
patch to try/catch to avoid failures on VML nodes
comment:5 Changed 11 years ago by
Milestone: | 1.6 → 1.7 |
---|
Didn't get around to adding this for 1.6, I attached the prospective patch and will do it for 1.7.
comment:6 Changed 11 years ago by
moved to 1.7.1 for consideration. Please move to 1.8 as appropriate.
comment:8 Changed 11 years ago by
Milestone: | 1.7.1 → future |
---|
comment:9 Changed 7 years ago by
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
Realistically this won't be fixed. IE8 is near EOL (and so is VML).
simple test case