2014-03-04 19 views

回答

1

最好使用以下方法。

在需要一些的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}'); 
+0

非常感谢!有效。我使用了一个add(新的WebComponent)并覆盖了renderHead。 –

0

目前检票6.x有一个onLoad事件的特定类。没有更多的需要任何hackish解决方案:

@Override 
public void renderHead(IHeaderResponse response) 
{ 
    super.renderHead(response); 
    response.render(OnLoadHeaderItem.forScript(yourDynamicScript)); 
}