2013-06-20 15 views

risposta

15

Si può avere javascript farlo per voi

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

Se avete bisogno di parametri dalla pagina wicket nella funzione javascript è possibile ignorare renderHead e aggiungere la funzione c'è:

@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

provato "response.render (OnDomReadyHeaderItem.forScript (" testAlert(); "));" - per me va bene. Grazie! – user1328889

10

Ancora un altro Il modo per farlo è creare AjaxEventBehavior come segue e aggiungerlo alla tua pagina.

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

Questo ha funzionato per me. Bello e semplice Grazie. – user2345093

+1

Puoi aggiungere questo a un componente o deve essere la pagina? Non sembra sparare quando si aggiunge a un componente ... – Ash

+0

appendJavaScript(), aggiunge la funzione menzionata o il pezzo del JS. Se utilizzato in una funzione Wicket che viene chiamata ripetutamente, il codice JS viene eseguito più volte e aumenta linearmente. – Srikanta