Author: mgrigorov
Date: Mon Mar 21 09:25:09 2011
New Revision: 1083712

URL: http://svn.apache.org/viewvc?rev=1083712&view=rev
Log:
WICKET-3420 javascript with a less than character ("<") fails to execute when 
added through a header contribution in ajax response

Wrap the javascript with "<!--/*--><![CDATA[/*><!--*/\n" 
(org.apache.wicket.util.string.JavaScriptUtils.SCRIPT_CONTENT_PREFIX).
This properly comments the JavaScript and is actually removed by 
Wicket.Head.Contributor.processScript() in wicket-ajax.js just before creating 
the new DOM node.

Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java?rev=1083712&r1=1083711&r2=1083712&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java
 Mon Mar 21 09:25:09 2011
@@ -24,6 +24,7 @@ import org.apache.wicket.markup.MarkupEl
 import org.apache.wicket.markup.RawMarkup;
 import org.apache.wicket.markup.parser.AbstractMarkupFilter;
 import org.apache.wicket.markup.parser.XmlPullParser;
+import org.apache.wicket.util.string.JavaScriptUtils;
 
 
 /**
@@ -95,7 +96,8 @@ public final class StyleAndScriptIdentif
                                                                String text = 
body.toString().trim();
                                                                if 
(!text.startsWith("<!--") && !text.startsWith("<![CDATA["))
                                                                {
-                                                                       text = 
"<![CDATA[" + body.toString() + "]]>";
+                                                                       text = 
JavaScriptUtils.SCRIPT_CONTENT_PREFIX + body.toString() +
+                                                                               
JavaScriptUtils.SCRIPT_CONTENT_SUFFIX;
                                                                        
markup.replace(i + 1, new RawMarkup(text));
                                                                }
                                                        }


Reply via email to