Okt
14
2009
Frank
If you use XHTML as HTML-Standard, which is recommended, to build your sites and you use JavaScript, you could have problems with document.write. Especially third-party JavaScript extensions like GoogleMaps or CKEditor use document.write to easily inject own JavaScript code.
But this is denied by specification for XHTML-Documents delivered with content-type application/xhtml+xml instead of text/html. You will receive the DOM Exception #7 by calling document.write or while using innerHTML (Example in Safari: “Error: NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7″; in Firefox: uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMNSHTMLElement.innerHTML]“ nsresult: “0×80004003 (NS_ERROR_INVALID_POINTER)” location: … ]). The solution is to deliver the Website with content-type “text/html” instead of “application/xhtml+xml”.

In SEAM using Facelets (with JSF) as View, you can set the content-type in the f:view-Tag. This would look like:
1
2
3
4
5
| ...
<f :view contentType="text/html">
....
</f>
... |
4 comments | tags: dom, Java, Javascript, JBoss, SEAM, XHTML | posted in Javascript, SEAM, XHTML
Okt
14
2009
Frank
SEAM doesn’t only extends JSF and Facelets, but also gives you a possibility to define other resources or components via annotations. To define a simple Servlet Filter you only need to annotate a class with the @Filter-annotation. There is no need to extend the web.xml or other.
One simple Filter would be:
1
2
3
4
5
6
7
8
9
10
| @Scope(ScopeType.APPLICATION)
@Name("myFilter")
@Install(precedence = Install.FRAMEWORK)
@BypassInterceptors
@Filter(within = { "org.jboss.seam.web.rewriteFilter" })
public class MyFilter extends AbstractFilter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
}
} |
With the parameters within or around of the @Filter annotation, you can define when you filter will be called.
1 comment | tags: filter, Java, SEAM, Tomcat | posted in SEAM, Tomcat
Okt
14
2009
Frank
If you use JQuery you can use the effects for dynamically hide and show html-elements, like boxes and so. But how to test if such a element is currently visible or not? JQuery offers here some selectors, named :hidden and :visible, which can be used. If you combine it with the “is” method, you can easily check the state.
1
2
3
| alert($("p").is(":visible"));
$("p").hide();
alert($("p").is(":visible")); |
This code would output “true”, “false” for a normal p-tag.
no comments | tags: Javascript, JQuery, selectors | posted in JQuery