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="#{bean.next}" > 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 > > > > > > > > > >