#15058 closed defect (fixed)
Dialog: focus.focus() error on page unload (IE6-8)
Reported by: | bill | Owned by: | bill |
---|---|---|---|
Priority: | undecided | Milestone: | 1.7.3 |
Component: | Dijit | Version: | 1.7.2 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
(reported by Stephan Hesmer)
See attached testcase. Click button to open dialog, and then click link in dialog, which navigates to a new page. IE gets an exception.
More Details:
When the page unloads, only IE runs a _destroyAll for the dijit.registry (which is to help prevent memory leaks). As it is destroying, the DialogLevelManager.hide inside the dijit Dialog.js is called, which attempts to call focus.focus() and this fails. Because it's trying to restore focus to the Button that triggered the Dialog, but that Button has already been destroyed.
Looking at dojo 1.6, the _DialogLevelManager used dijit.focus(focus) instead, and surrounded it in try/catch statements to discard the error when it occurs.
IMPORTANT: This issue only happens on IE7 and IE8 directly, not on IE9 in IE8 mode.
Attachments (1)
Change History (5)
Changed 9 years ago by
Attachment: | dialog.html added |
---|
comment:1 Changed 9 years ago by
Milestone: | tbd → 1.7.3 |
---|---|
Owner: | set to bill |
Status: | new → assigned |
comment:2 Changed 9 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
In [28212]: