This issue appeared once more, while selecting from tr:selectOneListbox
with autosubmit="true" and processing the PPR response.
Same reason, same behavior: blocking forever, IE only.
The focus() call is in Core.js, method _pprControlCapture. The patch is:
window.setTimeout("document.getElementById('" + win._pprEventElement.id
+ "').focus()", 500);
Jiira updated.
-- Renzo
Renzo Tomaselli wrote:
Done - see https://issues.apache.org/jira/browse/TRINIDAD-967
-- Renzo
Andrew Robinson wrote:
Good. Do you want to file a bug and upload a patch?
A timeout of 0 or 1 ms should be sufficient.
-Andrew
On Fri, Feb 22, 2008 at 9:51 AM, Renzo Tomaselli
<[EMAIL PROTECTED]> wrote:
Andrew, yes - using setTimeout solves the problem. Just put:
if (_agent && _agent.isIE)
window.setTimeout("document.getElementById('" + refocusId +
"').focus()", 1000);
else
activeNode.focus();
Btw I noticed a similar problem today in a different context. I had a popup
list (non a tr:panelPopup) to be shown as a suggestion list upon clicking a
link. All done through PPR and I needed to call focus() to preselect the
first item as well as catching onBlur to hide the list.
Once again, no problems on FF, while on IE this call returned ok, but the
very first time no popup was shown. Once more - commenting out the focus
call solved the problem. But even doing it a bit later through setTimeout
was ok.
-- Renzo
Andrew Robinson wrote:
I am wondering if this ought to be called in a window setTimeout. Any
way you can modify the code locally and attempt to see if that helps?
On Fri, Feb 22, 2008 at 1:30 AM, Renzo Tomaselli
<[EMAIL PROTECTED]> wrote:
Yes, I followed the PPR response handling on FF/Firebug - but there all is
ok.
Then I investigated on IE 6/7 by means of placing alerts everywhere. There
is no return from calling focus(), although no errors are reported - even on
IE 7 with IE developer toolbar activated.
-- Renzo
Andrew Robinson wrote:
Hmmm, you say this is during the PPR application?
I think there is a bug in IE that causes exceptions to be thrown if
setFocus is called from the PPR "thread"
-Andrew
On Thu, Feb 21, 2008 at 3:04 AM, Renzo Tomaselli
<[EMAIL PROTECTED]> wrote:
Hi, I have a panelPopup containing a number of links with
partialSubmit="true". The panel itself is enclosed into a
panelGroupLayout bound to a bean.
This binding allows to define the enclosing panel as a PPR target
through addPartialTarget(), no matter which links triggers it.
So the overall structure is roughly like this:
<tr:panelGroupLayout id="modalWrapper" binding="#{bean.panel}">
<tr:panelPopup id="modal" position="centered" modal="true">
<tr:commandLink id="next" action=""
partialSubmit="true"
...
all of this works fine on FF. However it does not on IE 6/7. The very
first time the panel is created, but any following click on links does
not refresh panel contents.
After some js debugging - I noticed that in Page.js, method
_handlePprResponseFragment() - there is a focus action on the link
itself (which is recorded as being active):
if (refocusId) {
activeNode = doc.getElementById(refocusId);
if (activeNode && activeNode.focus) {
activeNode.focus(); // !!!!!
on IE there is no return from focus(), so that the rest of the panel
fragments are not rendered. No errors, though.
If I comment out the focus() call, everything works as expected.
-- Renzo
|