2013-06-20 9 views

Odpowiedz

15

Można mieć javascript zrobić dla ciebie

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

Jeśli potrzebujesz parametry ze strony przejściowymi w funkcji javascript można zastąpić renderHead i dodać funkcję tam:

@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

próbuje "response.render (OnDomReadyHeaderItem.forScript (" testAlert() "));" - pracuje dla mnie. dzięki! – user1328889

10

Jeszcze inna sposobem na zrobienie tego jest stworzenie AjaxEventBehavior w następujący sposób i dodanie go do swojej strony.

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

To zadziałało dla mnie. Ładne i proste. Dzięki. – user2345093

+1

Czy możesz dodać to do komponentu, czy musi to być strona? Nie wydaje się strzelać podczas dodawania do komponentu ... – Ash

+0

appendJavaScript(), dołącza wspomnianą funkcję lub fragment JS. W przypadku użycia w funkcji Wicket, która jest wywoływana wielokrotnie, kod JS jest wykonywany wiele razy i liniowo wzrasta. – Srikanta

Powiązane problemy