2013-06-20 5 views
5

Это кажется таким простым, но я не могу найти пример того, как вызвать функцию javascript из калитки после загрузки страницы (на странице, которая расширяет WebPage). Может ли кто-нибудь привести пример о том, как это сделать?wicket 6: вызов функции javascript после загрузки страницы

+0

, как указано в вопросе, версия калитку 6 – user1328889

ответ

15

Вы можете Javascript сделать это для вас

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

Если вам нужны параметры со своей страницы калитки в яваскрипте функции можно переопределить 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

Смежные вопросы