Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.5.4
-
None
Description
I have recently upgraded from Wicket 1.4.14 to 1.5.4. One issue that I
encountered is that <script> tags in panel templates are rewritten by
Wicket, even when the <script> tags in question have no wicket handlers
attached to them. I.e. the following panel template (notice that there
are no wicket:id attributes whatsoever):
<wicket:panel>
<script id="template-upload" type="text/x-jquery-tmpl">
<span>${name}</span>
</script>
</wicket:panel>
Would render in the panel as:
<script id="template-upload" type="text/x-jquery-tmpl">
/<![CDATA[/
<span>${name}</span>
/]]>/
</script>
Imho this is unwanted behavior that is a regression from the behavior in
Wicket 1.4.x (or at least 1.4.14). Wicket should not add content to the
body of the script tags (or any other tags in a template, unless their
content is provided programmatically), as it does not have the knowledge
how that affects the functionality of the page. Moreover, the content
that Wicket adds to these script tags is only correct for Javascript
(hence incorrect for the scripts in the example as they are not
javascript). In the above example adding /*, */
will change the functionality of the script tag. If the "/<![CDATA[/"
part was necessary in the script tags above, they should be added by the
person that provides the template, not magically added by Wicket.
I have attached a quickstart that demonstrates the issue. The quickstart has a <script id="script1">Some Text</script> element in HomePage.html that (by javascript) is shown in an alert box. Because of this bug, the alert will now start with "/<![CDATA[/", while it should simply show the text. See HomePage.html in the provided quickstart.
Attachments
Attachments
Issue Links
- is broken by
-
WICKET-3420 javascript with a less than character ("<") fails to execute when added through a header contribution in ajax response
- Resolved