Wicket 1.5正文标记中的Javascript文件

时间:2011-11-03 10:51:12

标签: javascript wicket

我需要在body中放置一个script-tag,因为javascript在head标签中不起作用。

从Wicket 1.5开始,不再支持以下代码:

add(new JavaScriptReference("wz_tooltip", new JavaScriptResourceReference(BaseTemplate.class, "wz_tooltip.js")));

这是因为课程JavaScriptReference已不复存在。

我显然无法使用新的renderHead方法。

到目前为止我的解决方法:

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);

除了它不起作用之外真的很难看;找不到javascript文件。

是否还有其他解决方法或“正确”方法吗?

1 个答案:

答案 0 :(得分:6)

您是否尝试过使用带有资源引用的urlFor?像...这样的东西。

script.add(new AttributeAppender("src", urlFor(new JavaScriptResourceReference(BaseTemplate.class, "wz_tooltip.js"), null).toString())); 

由于Wicket的复杂资源管理,我不希望您当前的方法能够开箱即用。此外,虽然可能有其他“正确”的方法来做事,但我经常发现第三方javascript可能对于放置很挑剔,我仍然需要依靠这种方法来处理某些脚本。

例如,我使用的一个脚本必须是页面上的最后一个元素。