dgraham 2002/11/19 21:36:50 Modified: src/share/org/apache/struts/taglib/html FormTag.java Log: Don't display browser hiding trick for javascript when form is xhtml. XML user agents are allowed to ignore theses "comments" and the W3C recommends not using this trick. Presumably, any browser that works with XHTML also supports javascript. Note that I didn't enclose the script in a CDATA section because it doesn't use < or &. Revision Changes Path 1.37 +26 -12 jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java Index: FormTag.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/FormTag.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- FormTag.java 17 Nov 2002 00:57:07 -0000 1.36 +++ FormTag.java 20 Nov 2002 05:36:50 -0000 1.37 @@ -626,7 +626,11 @@ } results.append("\r\n"); results.append(this.getJsStartElement()); - results.append(" <!--\r\n"); + + // xhtml script content shouldn't use the browser hiding trick + if (!this.isXhtml()) { + results.append(" <!--\r\n"); + } results.append(" if (document.forms[\""); results.append(beanName); results.append("\"].elements[\""); @@ -636,8 +640,7 @@ results.append(refocus.toString()); } results.append(".type != \"hidden\") \r\n"); - - + results.append(" var focusControl = document.forms[\""); results.append(beanName); results.append("\"].elements[\""); @@ -653,7 +656,10 @@ results.append(" }\r\n"); results.append(" focusControl.focus();\r\n"); - results.append(" // -->\r\n"); + if (!this.isXhtml()) { + results.append(" // -->\r\n"); + } + results.append("</script>\r\n"); } @@ -841,14 +847,22 @@ */ private String getJsStartElement() { String start = "<script type=\"text/javascript\""; - String xhtml = - (String) this.pageContext.getAttribute(Globals.XHTML_KEY, this.pageContext.PAGE_SCOPE); - - if (!("true".equalsIgnoreCase(xhtml))) { + + if (!this.isXhtml()) { start += " language=\"JavaScript\""; } start += ">\r\n"; return start; + } + + /** + * Returns true if this tag should render as xhtml. + */ + private boolean isXhtml() { + String xhtml = + (String) this.pageContext.getAttribute(Globals.XHTML_KEY, this.pageContext.PAGE_SCOPE); + + return ("true".equalsIgnoreCase(xhtml)); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>