javascript with a less than character ("<") fails to execute when added through 
a header contribution in ajax response
----------------------------------------------------------------------------------------------------------------------

                 Key: WICKET-3420
                 URL: https://issues.apache.org/jira/browse/WICKET-3420
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.4.15
         Environment: Validated this bug on my dev environment: Windows 7 64 
bit using Firefox 4.0beta10 and Chrome 8.
            Reporter: Randy Schnedler
            Priority: Minor


This is adapted from a wicket users post I made (links are to the same thread 
in two archive systems):

http://markmail.org/search/?q=wicket%20users%20wicket-ajax.js#query:wicket%20users%20wicket-ajax.js+page:1+mid:rfts3ar3upffhbbt+state:results

http://mail-archives.apache.org/mod_mbox/wicket-users/201102.mbox/%[email protected]%3E

The problem:  I have a panel with this:

    <wicket:head>
        <script>
                if (someVariable < 0) {
                        someVariable = 0;               
                }
        </script>
    </wicket:head>

This script fails to execute when the panel is loaded by ajax.  If I replace 
the less than character "<" with equals "==", then it executes (but of course, 
this is not what I need).

I tested this in Firefox 4.0b10 and Chrome 8.

After some debugging, it seems to me that this needs to be corrected in 
wicket-ajax.js. The header contribution is sent to the browser inside of a 
CDATA section so the "<" character arrives to javascript intact. However, in 
parsing the script tag, the "<" seems to signal the beginning of an HTML tag 
that then is considered malformed.


Possible workarounds for apps:

 - Invert the logic so a greater-than is used. In my example, this would be: 
"if (0 > someVariable) {"
 - Put the code into a separate JS file (the downside is it requires another 
network hop from the browser)
 - Embed the script in <wicket:panel> rather than <wicket:head> (the 
disadvantage is the script will be re-sent with the panel content when the 
panel is re-used on the same page)



-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to