我需要在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文件。
是否还有其他解决方法或“正确”方法吗?
答案 0 :(得分:6)
您是否尝试过使用带有资源引用的urlFor?像...这样的东西。
script.add(new AttributeAppender("src", urlFor(new JavaScriptResourceReference(BaseTemplate.class, "wz_tooltip.js"), null).toString()));
由于Wicket的复杂资源管理,我不希望您当前的方法能够开箱即用。此外,虽然可能有其他“正确”的方法来做事,但我经常发现第三方javascript可能对于放置很挑剔,我仍然需要依靠这种方法来处理某些脚本。
例如,我使用的一个脚本必须是页面上的最后一个元素。