Author: nbelaevski
Date: 2007-11-12 11:15:28 -0500 (Mon, 12 Nov 2007)
New Revision: 3927
Modified:
branches/3.1.x/samples/jQuery-sample/src/main/webapp/jQuery.xhtml
branches/3.1.x/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java
branches/3.1.x/ui/jQuery/src/main/templates/jQuery.jspx
Log:
Fix for
http://jira.jboss.com/jira/browse/RF-1261 merged
Modified: branches/3.1.x/samples/jQuery-sample/src/main/webapp/jQuery.xhtml
===================================================================
--- branches/3.1.x/samples/jQuery-sample/src/main/webapp/jQuery.xhtml 2007-11-12 16:10:43
UTC (rev 3926)
+++ branches/3.1.x/samples/jQuery-sample/src/main/webapp/jQuery.xhtml 2007-11-12 16:15:28
UTC (rev 3927)
@@ -19,11 +19,12 @@
<h:graphicImage
value="http://www.archos.com/img/av_700/picto_game.gif"
/>
</h:panelGrid>
-
+
<rich:jQuery name="makeFat" timing="onJScall"
query="stop().animate({width:param.ewidth})" />
<rich:jQuery name="makeThin" timing="onJScall"
query="stop().animate({width:'50px'})" />
<rich:jQuery selector="#menu img" timing="onload"
query="mouseover(function(){makeFat(this,{ewidth:'120px'});})" />
<rich:jQuery selector="#menu img" timing="onload"
query="mouseout(function(){makeThin(this);})" />
+ <rich:jQuery selector="document.body" timing="onload"
query="append('Dynamic text')" />
</h:form>
</body>
Modified:
branches/3.1.x/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java
===================================================================
---
branches/3.1.x/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java 2007-11-12
16:10:43 UTC (rev 3926)
+++
branches/3.1.x/ui/jQuery/src/main/java/org/richfaces/renderkit/JQueryRendererBase.java 2007-11-12
16:15:28 UTC (rev 3927)
@@ -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: branches/3.1.x/ui/jQuery/src/main/templates/jQuery.jspx
===================================================================
--- branches/3.1.x/ui/jQuery/src/main/templates/jQuery.jspx 2007-11-12 16:10:43 UTC (rev
3926)
+++ branches/3.1.x/ui/jQuery/src/main/templates/jQuery.jspx 2007-11-12 16:15:28 UTC (rev
3927)
@@ -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>