私は現在、Google が提供するアクティビティと場所のモデルを利用する GWT プロジェクトを持っています。外部ドメインの JSP を iframe にレンダリングし、window.location トランスポートを使用して、ユーザーがこの JSP での作業を終了したときにドメインに通知するサード パーティのクロス ドメイン JavaScript ソリューションと統合しています。
問題は、window.location トランスポートを使用することで、GWT のプレース システムが URL の編集をキャッチし、存在しない場所に移動しようとすることです。
私たちはサードパーティに変更を求める影響力を持っているので、私が見ることができる3つのオプションは次のとおりです。
- 試行されたプレイス ナビゲーションをキャッチし、このサード パーティの JS が使用する予約済み文字列の特定のリストが含まれている場合は無視します。
- window.name を使用するようにサードパーティにソリューションを変更してもらいます (サードパーティ側のリファクタリングが少なくなります)。
- JSONP を利用するようにサード パーティにソリューションを変更してもらいます (サード パーティ側でのリファクタリングを増やす)。
実際に#1を達成する方法はありますか?
編集そこで、GWT の PlaceHistoryHandler の独自のバージョンを展開し、handleHistoryTokenメソッドを変更することで、#1 を達成する方法を見つけました。問題は、これら 3 つのソリューションのどれがベスト プラクティスであるかということです。