#9068 closed feature (wontfix)
Ability to have a transparent overlay on non-focused dialogs, useful for iframe dialogs
Reported by: | aNt1X | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | none |
Component: | ui.dialog | Version: | 1.10.0 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Hi,
it would be nice to have a transparent overlay that covers non-focused dialogs.
It is useful when you have iframe dialogs: they cannot gain focus if the user clicks the iframe, because the click event isn't handled by the dialog.
I implemented a workaround that, when the user focus a dialog, other dialogs are covered with a transparent div.
When a dialog got clicked, his overlay is removed and he gains focus.
Here the focus() event i implemented:
focus: function () { var $this_dialog = $(this).dialog('widget'); console.log($this_dialog.attr('aria-describedby') + ' focus'); var $other_dialogs = $('.ui-dialog').not($this_dialog); // Add invisible overlay to other dialogs $other_dialogs.each(function () { var $that_dialog = $(this); console.log($that_dialog.attr('aria-describedby') + ' dialog found'); if ($that_dialog.find('div.ui-dialog-invisible-overlay').length == 0) { console.log($that_dialog.attr('aria-describedby') + ' invisible overlay not found, appending'); $that_dialog.append($('<div class="ui-dialog-invisible-overlay" style="position: absolute; top: 0; left: 0; height: 100%; width: 100%; opacity: 0.5; background-color:white;"></div>')); } }); // Remove overlay on this dialog var $this_dialog_overlay = $this_dialog.find('div.ui-dialog-invisible-overlay'); if ($this_dialog_overlay.length > 0) { console.log($this_dialog.attr('aria-describedby') + ' invisible overlay found, removing'); $this_dialog_overlay.remove(); } }
The code is full of debug messages for debugging purpouses.
This is not mandatory for non-iframe dialogs, but it is necessary when you have an iframe dialog.
Change History (3)
comment:1 Changed 11 years ago by
Resolution: | → wontfix |
---|---|
Status: | new → closed |
comment:2 Changed 11 years ago by
But doing so, the iframe based dialog will never get focus if the user click into the iframe content. Am i wrong?
comment:3 Changed 11 years ago by
And with the cover, you're impeding the user's ability to do what they want and expect.
The only time we'll ever cover an iframe is while the user is actively performing an action like dragging or resizing.