Closed
Bug 561157
Opened 14 years ago
Closed 14 years ago
iframe/browser element does not accept keyboard input in popup panel
Categories
(Core :: XUL, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 385609
People
(Reporter: brn, Unassigned)
Details
Attachments
(1 file)
2.16 KB,
application/x-xpinstall
|
Details |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) When a panel is shown as a popup, and this panel contains an iframe, this iframe does not (always) accept keyboard input. Reproducible: Sometimes Steps to Reproduce: 1. Create a button in XUL overlay with popup handler set to a panel. 2. In the same panel specified above, add an iframe with a src that contains a textbox. 3. Load this overlay and click the button. 4. Attempt to type in the iframe's textbox. Actual Results: The textbox does not accept keyboard input. Exact results have varied between different machines/installations: In one case, on Windows Vista, the popup works correctly the first time it is shown, but subsequent popups do not accept input. Note, however, that if the user clicks the gray area outside of the input box, then clicks the input box, it does accept input. In another case, on Windows 7, popups do not work at all, including the first popup. Even clicking in the gray area first, as mentioned above, does not work on this machine. Expected Results: The input box accepts keyboard input.
Reporter | ||
Comment 1•14 years ago
|
||
After installing this extension, click the TEST button that appears next to the navigation bar to see a simple popup with this problem.
Comment 2•14 years ago
|
||
Confirmed with Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.3a5pre) Gecko/20100421 Minefield/3.7a5pre
Status: UNCONFIRMED → NEW
Ever confirmed: true
Reporter | ||
Comment 3•14 years ago
|
||
For now, can anyone suggest a workaround? The general idea we're trying accomplish is showing an HTML document in a popup so it can be used with jQuery, is cross-browser compatible, etc. Showing an iframe in a XUL popup panel was the most obvious way to do this, but we're open to any method.
Comment 4•14 years ago
|
||
Here is stupid workaround. <?xml version="1.0" encoding="UTF-8"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" xmlns="http://www.w3.org/1999/xhtml"><![CDATA[ var windowObjectReference; function xxx_onPopupshowing(event) { window.windowObjectReference = window.open("chrome://popuptest/skin/test.png", "dummy", "left=-10000,resizable=no,scrollbars=no,status=no,chrome=no"); setTimeout(function(self){ document.getElementById("panel").focus(); document.getElementById("xxxIframe").contentWindow.focus(); },100, this); } function xxx_onpopuphidden(event) { window.windowObjectReference.focus(); setTimeout(function(self){ window.windowObjectReference.close(); },100, this); } ]]></script> <toolbaritem id="urlbar-container"> <toolbarbutton id="libx-button" insertafter="urlbar-search-splitter" image="chrome://popuptest/skin/test.png" popup="panel" /> </toolbaritem> <popupset> <panel id="panel" onpopupshowing="xxx_onPopupshowing(event);" onpopuphidden="xxx_onpopuphidden(event);"> <iframe id="xxxIframe" src="chrome://popuptest/content/popup.html" width="200" height="50"/> </panel> </popupset> </window>
Updated•14 years ago
|
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
Reporter | ||
Comment 6•14 years ago
|
||
(In reply to comment #4) > Here is stupid workaround. Alice, thanks for the workaround. When I try to set the panel's position, like in the following: <panel id="panel" position="after_end" onpopupshowing="xxx_onPopupshowing(event);" onpopuphidden="xxx_onpopuphidden(event);"> <iframe id="xxxIframe" src="chrome://popuptest/content/popup.html" width="200" height="50"/> </panel> the popup doesn't appear at all. Do you have any ideas for setting the popup's position?
Comment 7•14 years ago
|
||
May I follow-up on the work-around? In addition to being unable to set the panel's position, the work-around has other flaws. First, it degrades the user experience because a second, small, empty top-level window appears (which shows up in the task list!). Second, it doesn't work if the window has been moved towards the lower end (vertically) of the screen such that the panel doesn't fit in the remaining portion vertically. In this case, the panel flickers, then disappears. Third, it doesn't work on dual-head displays - in those cases, the position "left=-10000" appears to be ignored and the window shows up visible, and straight in the center of the second display. Could you explain what series of events you're trying to trigger to work around the problem in Firefox? Perhaps there is a carefully crafted way to send these events to achieve the same effect?
Comment 8•14 years ago
|
||
Set level="top" on panel...there some issues with cursor inside input, but it works
You need to log in
before you can comment on or make changes to this bug.
Description
•