如何在Wicket中动态修改Wicket 1.6页的body onload标签?Wicket 1.6 - 如何动态修改body“onload”属性?
我想将JavaScript函数添加到需要使用Java生成的动态参数的“onload”属性中。
在此先感谢
如何在Wicket中动态修改Wicket 1.6页的body onload标签?Wicket 1.6 - 如何动态修改body“onload”属性?
我想将JavaScript函数添加到需要使用Java生成的动态参数的“onload”属性中。
在此先感谢
最好使用以下方法。
在需要一些的onLoad动作的任何组件以下的方法进行添加:
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(
OnDomReadyHeaderItem.forScript("alert('REPLACE ALERT BY YOUR SCRIPT')"));
}
如果你需要用额外参数等动态脚本编写我建议如下:
private final static TextTemplate template
= new PackageTextTemplate(YourComponentOrPage.class, "your-js-template.js");
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
Map<String, Object> params =new HashMap<String, Object>();
params.put("parameter1", parameter1Value);
params.put("parameter2", parameter2Value);
response.render(OnDomReadyHeaderItem.forScript(template.asString(params)));
}
而 “你的JS-template.js” 可能看起来像:
alert('Hi!, ${parameter1}. My name is ${parameter2}');
目前检票6.x有一个onLoad事件的特定类。没有更多的需要任何hackish解决方案:
@Override
public void renderHead(IHeaderResponse response)
{
super.renderHead(response);
response.render(OnLoadHeaderItem.forScript(yourDynamicScript));
}
非常感谢!有效。我使用了一个add(新的WebComponent)并覆盖了renderHead。 –