如何在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。 –