Điều này có vẻ đơn giản, nhưng tôi không thể tìm thấy ví dụ về cách gọi hàm javascript từ wicket, sau khi trang được tải (trên trang mở rộng WebPage). Bất cứ ai có thể đưa ra ví dụ về làm thế nào để đi mà?wicket 6: gọi hàm javascript sau khi tải trang
Trả lời
Bạn có thể có javascript làm điều đó cho bạn
window.onload = function() {
// do stuff here
}
Nếu bạn cần các thông số từ trang wicket của bạn trong hàm javascript bạn có thể ghi đè lên renderHead và thêm chức năng đó:
@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 + ");") ;
}
cố gắng "response.render (OnDomReadyHeaderItem.forScript (" testAlert(); "));" - làm việc cho tôi. cảm ơn! – user1328889
Tuy nhiên, một cách để làm điều đó là tạo AjaxEventBehavior như sau và thêm nó vào trang của bạn.
AjaxEventBehavior event = new AjaxEventBehavior("onload") {
@Override
protected void onEvent(final AjaxRequestTarget target) {
// do stuff here
target.appendJavaScript("alert('onload');");
}
}
add(event);
Điều này làm việc cho tôi. Đẹp và đơn giản. Cảm ơn. – user2345093
Bạn có thể thêm điều này vào một thành phần hay nó phải là trang? Dường như không kích hoạt khi thêm vào một thành phần ... – Ash
appendJavaScript(), gắn thêm chức năng được đề cập hoặc phần của JS. Khi được sử dụng trong một hàm Wicket được gọi nhiều lần, mã JS được thực hiện nhiều lần và tăng tuyến tính. – Srikanta
như đã nêu trong câu hỏi, các phiên bản của wicket là 6 – user1328889