You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Tom Desmet (JIRA)" <ji...@apache.org> on 2008/01/14 07:47:34 UTC

[jira] Closed: (WICKET-1257) iframe get request done 2x after ajax change in IE

     [ https://issues.apache.org/jira/browse/WICKET-1257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tom Desmet closed WICKET-1257.
------------------------------

    Resolution: Fixed

Your patch (Rev. 611477) works fine. Thank you very much! 

> iframe get request done 2x after ajax change in IE
> --------------------------------------------------
>
>                 Key: WICKET-1257
>                 URL: https://issues.apache.org/jira/browse/WICKET-1257
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.0-rc2, 1.3.0-final
>         Environment: All platforms / Internet Explorer
>            Reporter: Tom Desmet
>            Assignee: Matej Knopp
>
> http://www.nabble.com/bug%3A-iframe-get-request-done-2x-after-ajax-change-in-IE-to14598132.html
> We have a page that has an iframe and an ajax button.
> When the ajax button is clicked, the iframe is replaced by a new iframe with specific src.
> We have encountered the phenomenon where the iframe src is requested
> two times to the server after the button gets clicked.
> After some debugging, the problem was pinned down and
> lies within the file org\apache\wicket\ajax\wicket-ajax.js
> The problem is within the function "replaceOuterHtmlIE".
> There is some kind of "hack" to read the <script> tags within the received html...
> First the content of the div is filled with a table containing received ajax component markup:
>  
>   tempDiv.innerHTML = '<table style="display:none">' + text + '</table>';
> This way script tags can be retrieved. Afterwards the innerHTML is replaced by a div containing received text.
>   tempDiv.innerHTML = '<div style="display:none">' + text + '</div>';
> Both statements cause IE to fetch the urls within the contained text (in our case <iframe src="someurl"></iframe> tags).
> We patched this the following way ...
> The first occurence of tempDiv.innerHTML, The content of the div is filled with a table containing a div.
>   tempDiv.innerHTML = '<table style="display:none"><div style="display:none">' + text + '</div></table>';
> After the script tags are retrieved, the table gets removed from the structure,
> and the div within the table is connected to tempDiv.
>   var table=tempDiv.firstChild;
>   var childDiv=table.firstChild.firstChild;
>   tempDiv.removeChild(table);
>   tempDiv.appendChild(childDiv);
> Would it be possible to apply this patch to the next wicket version?
> We experienced some problems with the patch, below is the updated version that we use.
> var table=tempDiv.firstChild;
> tempDiv.removeChild(table);
> if(tempDiv.childNodes.length==0) {
>   var childDiv=table.firstChild.firstChild;
>   table.firstChild.removeChild(childDiv);
>   tempDiv.appendChild(childDiv);
> }
> else {
>   tempDiv.removeChild(tempDiv.lastChild); // slash table
>   tempDiv.removeChild(tempDiv.lastChild); // div
>   var childDiv=document.createElement("div");
>   childDiv.style.display="none";
>   var child;
>   while(tempDiv.childNodes.length>0) {
>     child=tempDiv.firstChild;
>     tempDiv.removeChild(child);
>     childDiv.appendChild(child);
>   }
>   tempDiv.appendChild(childDiv);
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.