Ich verwende Wicket 7.x mit der History API. Ich versuche gerade, ein AjaxEventBehavior für "onpopstate" zu verkabeln. Ich habe Code, der ein Objekt hinzufügt, wenn ich history.pushState mache, mein Problem ist, dass ich nicht auf diese zusätzlichen Informationen von der Java-Seite mit onEvent zugreifen kann.Wick AjaxEventBehavior mit Verlauf API
Probe 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 ist keine Lösung, weil es nur aufgerufen, wenn die Seite gerendert wird. Ich muss diese zusätzlichen Daten senden, wenn popstate aufgerufen wird.
Hallo, danke für den Tipp. Es hat mich auf den richtigen Weg gebracht! Ich verwende jetzt getDynamicExtraParameters wie Sie vorgeschlagen haben. Das einzige Problem, mit dem ich konfrontiert bin, ist, wenn die zusätzlichen Parameter hinzugefügt werden, es passiert zu früh in meinem Ereignis, um die richtigen Informationen abzurufen. Gibt es eine Möglichkeit, die Ausführung bis zu einem späteren Zeitpunkt zu verzögern? Der aktuelle Wert, den ich an getDynamicExtraParameters übergebe, lautet "return {'query': attrs.event.originalEvent.state.query}". – Greg
Ich habe eine Lösung für mein Problem gefunden, ich habe die History API missbraucht. Danke für die tolle Antwort! – Greg