2013-06-20 92 views

回答

15

你可以拥有的JavaScript为你做

window.onload = function() { 
// do stuff here 
} 

如果您需要在JavaScript函数从边门页面参数可以覆盖renderHead,并添加有该功能:

@Override 
public void renderHead(IHeaderResponse response) 
{ 
    super.renderHead(response); 
    String bar = "something"; 
    response.render(JavaScriptHeaderItem.forScript("window.onload = function() {var foo='" + bar + "'}")); 
    // or 
    response.render(OnDomReadyHeaderItem.forScript("functionToCall(" + bar + ");") ; 
} 
+0

试图 “response.render(OnDomReadyHeaderItem.forScript(” 的testAlert(); “));” - 为我工作。谢谢! – user1328889

10

另一个方法是按如下方式创建AjaxEventBehavior并将其添加到页面中。

AjaxEventBehavior event = new AjaxEventBehavior("onload") { 
    @Override 
    protected void onEvent(final AjaxRequestTarget target) { 
     // do stuff here 
     target.appendJavaScript("alert('onload');"); 
    } 
} 
add(event); 
+0

这对我有用。很好很简单。谢谢。 – user2345093

+1

你可以将它添加到组件吗?还是它必须是页面?在添加到组件时似乎不会触发... – Ash

+0

appendJavaScript(),追加提到的功能或JS的一部分。当在重复调用的Wicket函数中使用时,JS代码会多次执行并线性增加。 – Srikanta

相关问题