You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Renzo Tomaselli <re...@tecnotp.it> on 2008/01/18 15:21:16 UTC
[Trinidad] problem with tr:panelPopup containing an iframe
Hi, in the context of displaying generic documents (images, pdf, etc.) I
wanted to use a modal tr:panelPopup, containing an iframe to host actual
document contents. Things such as:
<tr:panelPopup id="modal" position="centered" modal="true">
<iframe src="#{bean.blob}" type="#{bean.type}" width="400"
height="400 frameborder="0"/>
...
Actual document contents are provided by the common trick of catching a
resource request (src) in a phase listener and feeding the proper data
stream into the response.
Now the problem is that with this configuration, the iframe resource is
requested twice on FF.
Besides any performance loss, there are bad side effects since I store
the document into the sesssion during first rendering (in bean.blob), to
be retrieved and removed later, when the iframe requests the resource by
next request. The second request will not find it anymore.
But if the iframe is hosted by any other component on a normal page it
is requested just once.
Any help is appreciated.
Re: [Trinidad] problem with tr:panelPopup containing an iframe
Posted by Renzo Tomaselli <re...@tecnotp.it>.
The double request produced by FF is due to the DOM change in
TrPanelPopup._calcPosition, where the popup is assigned to the enclosing
form in spite of its current parent, usually a span.
It appears that in such case FF refreshes the contents of the
popup-contained iframes/objects, requesting the server for the same
blobs as it already requested while building the page.
IE doesn't do it.
If I comment out parent.appendChild(popup), this second request is not
emitted.
Unfortunately this parent reassignement was performed in solving jira
TRINIDAD-673.
For the moment I don't see any other workaround than cloning my own
version of TrPanelPopup.
-- Renzo
Renzo Tomaselli wrote:
> Hi, in the context of displaying generic documents (images, pdf, etc.)
> I wanted to use a modal tr:panelPopup, containing an iframe to host
> actual document contents. Things such as:
>
> <tr:panelPopup id="modal" position="centered" modal="true">
> <iframe src="#{bean.blob}" type="#{bean.type}" width="400"
> height="400 frameborder="0"/>
> ...
>
> Actual document contents are provided by the common trick of catching
> a resource request (src) in a phase listener and feeding the proper
> data stream into the response.
> Now the problem is that with this configuration, the iframe resource
> is requested twice on FF.
> Besides any performance loss, there are bad side effects since I store
> the document into the sesssion during first rendering (in bean.blob),
> to be retrieved and removed later, when the iframe requests the
> resource by next request. The second request will not find it anymore.
> But if the iframe is hosted by any other component on a normal page it
> is requested just once.
> Any help is appreciated.
>
>
>
>
>