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
>
>
>
>
>
>
>
>
>
>