我正在使用带有历史记录API的Wicket 7.x。我目前正在尝试将Ajaxeventbehavior连接到" Onpopstate"。每当我进行历史记录时,我都会添加一个对象。Pushstate,我的问题是我无法使用OneVent访问Java侧的额外信息。
样本PUSHSTATE:
target.appendJavaScript("history.pushState({query: '" +
searchResults.getQueryString() + "'}, null, window.location.pathname);");
eventbehavior:
this.getPage().add(new AjaxEventBehavior("onpopstate")
{
@Override
protected void onEvent(AjaxRequestTarget target)
{
//code to get query defined in pushState
}
});
UpdateAjaxAttributes不是解决方案,因为仅在渲染页面时才调用。当调用PopState时,我需要发送此额外的数据。
updateAjaxAttributes实际上可以为您提供帮助。AjaxRequestAttributes允许您还指定动态额外属性(有关更多信息,请参见此处)。在触发AjaxeventBehavior之前,这些参数在客户端进行了动态计算,并作为请求参数发送。