You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Sven Meier (JIRA)" <ji...@apache.org> on 2017/03/17 20:38:41 UTC

[jira] [Resolved] (WICKET-6340) The Ajax reponse of an AjaxSubmitButton creates invalid XHTML markup for multipart forms

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

Sven Meier resolved WICKET-6340.
--------------------------------
       Resolution: Fixed
         Assignee: Sven Meier
    Fix Version/s: 8.0.0-M5
                   7.7.0
                   6.27.0

Generating the <iframe> is done XHTML conform now. Additionally I've replaced &nbsp; in wicket-ajax-debug with &#160; since these lead to further errors on the console.

> The Ajax reponse of an AjaxSubmitButton creates invalid XHTML markup for multipart forms
> ----------------------------------------------------------------------------------------
>
>                 Key: WICKET-6340
>                 URL: https://issues.apache.org/jira/browse/WICKET-6340
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 7.6.0, 6.26.0
>         Environment: Jetty 9, Fedora 25
>            Reporter: Marcus
>            Assignee: Sven Meier
>            Priority: Minor
>              Labels: patch, triaged
>             Fix For: 6.27.0, 7.7.0, 8.0.0-M5
>
>         Attachments: wicket-ajax-jquery-iframe.zip, wicket-ajax-jquery.patch
>
>
> My web pages are delivered as XHTML5 ({{response.setContentType("application/xhtml+xml");}}). When I add a multipart form and submit a file, I get strange JavaScript errors about invalid or illegal strings.
> {quote}
> Wicket.Ajax:  An error occurred while executing Ajax request:SyntaxError: An invalid or illegal string was specified 
> XML Parsing Error: mismatched tag. Expected: </iframe>.
> Address: 
> Row Nr. 1, Column 202:
> {quote}
> I found out that Wicket’s Ajax code is responsible for those problems.
> {code:title=wicket-ajax-jquery.js, row 70|borderStyle=solid}
> createIFrame = function (iframeName) {
>   var $iframe = jQuery('<iframe name="'+iframeName+'" id="'+iframeName+
>     '" src="about:blank" style="position: absolute; top: -9999px; left: -9999px;">');
>   return $iframe[0];
> };
> {code}
> The iframe tag isn’t closed. This is fine for HTML5, but not for XHTML5.
> I have attached a quite minimal Wicket project were the problems can be examined:
> {code}
> mkdir wicket-ajax-jquery-iframe
> mv wicket-ajax-jquery-iframe.zip wicket-ajax-jquery-iframe
> cd wicket-ajax-jquery-iframe
> unzip wicket-ajax-jquery-iframe.zip
> mvn package
> mvn jetty:run-war
> {code}
> Open your browser’s console and upload any file on localhost:8080.
> A patch which fixes this issued is attached. Thanks for your help.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)