私は Wicket を初めて使用し、Functionkey が押された場合に Javacode を呼び出す ajax 動作を作成したいと考えています。
私の考えは、Javascript をブラウザーに送信する動作を作成することです。F キーのみが ajax コールバックを引き起こします。
public class HomePage extends WebPage {
public HomePage(final PageParameters parameters) {
super(parameters);
add(new AbstractDefaultAjaxBehavior(){
@Override
protected void respond(AjaxRequestTarget target) {
//retrieve the Parametervalue from request
final Request request = RequestCycle.get().getRequest();
final String jsKeycode = request.getRequestParameters()
.getParameterValue("keycode").toString("");
//test output
target.appendJavaScript("alert('from wicket ajax. you pressed "+jsKeycode+"')");
}
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
//Append JavaScriptcode
response.render(OnDomReadyHeaderItem.forScript(
"\n\n" +
"$(document).keydown(" +
"function(event){\n" + //120, 121 Example for F9 and F10
"if((event.keyCode == 120) || (event.keyCode == 121)){\n" +
"event.preventDefault();\n" +
"window.alert('F-Key pressed');\n" +
//perform ajax-callback with keyCode
"}\n" +
"});\n"));
}
});
今、私の問題は次のとおりです。コード化する必要があるのは、押されたキーコードをパラメータとして ajax コールバックが実行されるということですか?