2017-10-03 44 views
0

私は履歴APIでWicket 7.xを使用しています。私は現在、 "onpopstate"のAjaxEventBehaviorをワイヤリングしようとしています。私はhistory.pushStateを実行するたびにオブジェクトを追加するコードを持っています。私の問題はJavaの側からonEventでこの余分な情報にアクセスすることができないことです。履歴APIを使用したWick AjaxEventBehavior

サンプル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が呼び出されたときにこの余分なデータを送る必要があります。

答えて

1

updateAjaxAttributesが実際にお手伝いします。 AjaxRequestAttributesでは、動的な追加属性も指定できます(詳細はhereを参照してください)。これらのパラメータは、AjaxEventBehaviorがトリガされる前にクライアント側で動的に計算され、リクエストパラメータとして送信されます。

+0

こんにちは、チップをありがとうございます。それは私を正しい軌道に乗せてくれました!私は今あなたが提案したようにgetDynamicExtraParametersを使用しています。私が直面している唯一の問題は、余分なパラメータが追加されたときです。イベントが早過ぎて正しい情報を取得できない場合があります。後で実行を延期する方法はありますか? getDynamicExtraParametersに渡す現在の値は "return {'query':attrs.event.originalEvent.state.query}"です。 – Greg

+1

私は私の問題の解決策を見つけました。私はHistory APIを悪用していました。素晴らしい答えをありがとう! – Greg

関連する問題