我是 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 回调?