Author: nbelaevski
Date: 2007-10-29 19:41:09 -0400 (Mon, 29 Oct 2007)
New Revision: 3607
Modified:
trunk/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java
trunk/ui/jQuery/src/main/templates/jQuery.jspx
Log:
http://jira.jboss.com/jira/browse/RF-1261
Modified: trunk/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java
===================================================================
---
trunk/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java 2007-10-29
23:37:50 UTC (rev 3606)
+++
trunk/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java 2007-10-29
23:41:09 UTC (rev 3607)
@@ -1,13 +1,10 @@
package org.richfaces.renderkit;
-import java.io.IOException;
-import java.util.regex.Pattern;
-
+import javax.faces.FacesException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.faces.FacesException;
-import org.richfaces.renderkit.JQueryRendererBase;
-import org.ajax4jsf.renderkit.ComponentVariables;
+
+import org.ajax4jsf.javascript.JSEncoder;
import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
import org.richfaces.component.UIJQuery;
import org.richfaces.component.util.HtmlUtil;
@@ -52,5 +49,20 @@
return HtmlUtil.expandIdSelector(selector, component, context);
}
-
+ public String escapeJavaScript(Object o) {
+ if (o != null) {
+ JSEncoder encoder = new JSEncoder();
+ StringBuffer result = new StringBuffer();
+ String string = o.toString();
+ int length = string.length();
+
+ for (int i = 0; i < length; i++) {
+ result.append(encoder.encode(string.charAt(i)));
+ }
+
+ return result.toString();
+ } else {
+ return null;
+ }
+ }
}
Modified: trunk/ui/jQuery/src/main/templates/jQuery.jspx
===================================================================
--- trunk/ui/jQuery/src/main/templates/jQuery.jspx 2007-10-29 23:37:50 UTC (rev 3606)
+++ trunk/ui/jQuery/src/main/templates/jQuery.jspx 2007-10-29 23:41:09 UTC (rev 3607)
@@ -34,7 +34,12 @@
<script type="text/javascript">
//<![CDATA[
function #{name}(elm, param) {
- jQuery(elm || '#{selector}').#{query};
+ var selector = '#{selector}';
+ try {
+ selector = eval("#{this:escapeJavaScript(selector)}");
+ } catch (e) {}
+
+ jQuery(elm || selector).#{query};
}
//]]>
</script>
@@ -43,7 +48,13 @@
<jsp:scriptlet><![CDATA[ if ( "immediate".equals(timing) ) {
]]></jsp:scriptlet>
<script type="text/javascript">
//<![CDATA[
- jQuery('#{selector}').#{query};
+ {
+ var selector = '#{selector}';
+ try {
+ selector = eval("#{this:escapeJavaScript(selector)}");
+ } catch (e) {}
+ jQuery(selector).#{query};
+}
//]]>
</script>
<jsp:scriptlet><![CDATA[ } ]]></jsp:scriptlet>
@@ -52,7 +63,11 @@
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function() {
- jQuery('#{selector}').#{query};
+ var selector = '#{selector}';
+ try {
+ selector = eval("#{this:escapeJavaScript(selector)}");
+ } catch (e) {}
+ jQuery(selector).#{query};
});
//]]>
</script>