I need to put a script-tag inside the body, because the javascript doesn't work in the head tag.
As of Wicket 1.5 the following code is not longer supported:
add(new JavaScriptReference("wz_tooltip", new JavaScriptResourceReference(BaseTemplate.class, "wz_tooltip.js")));
This is because the class JavaScriptReference
no longer exists.
I can't obviously use the new renderHead
method.
My workaround so far:
WebMarkupContainer script = new WebMarkupContainer("script");
script.add(new AttributeAppender("type", Model.of("text/javascript")));
script.add(new AttributeAppender("src", Model.of("wz_tooltip.js")));
add(script);
Really ugly apart from that it doesn't work; can't find the javascript files.
Is there any other workaround or a "right" way to do it?
Have you tried using a urlFor with a resource reference? Something like..
I wouldn't expect your current method to work out of the box because of Wicket's complex resource management. Also, while there may be other "right" ways to do things, I've often found that 3rd-Party javascript can be finicky about placement and I still need to fall back on this method for some scripts.
For example, one script I use must be the last element on the page.