クライアント用の検索ページを作成しましたが、この場合、実際の検索ページは にiframe
あり、ユーザーには前述の を囲む装飾的なシェルが表示されiframe
ます。これにより、その URL パラメータが に渡され、それがiframe
解釈されて検索が実行されます。 . これは私が変えることのできないものです。また、ユーザーが検索ページの検索バーに入力して別の検索を実行すると、iframe は更新されますが、シェル ページは更新されないという固有の問題も発生します。これは、URL が現在の検索に関連しなくなったことを意味します。このシェル ページから移動せずに、アドレス バーの URL を変更するにはどうすればよいですか? このシステムの要点は、待ち時間が少ないことです。iframe
ページ全体よりも更新する必要があるため、ページ全体を更新すると逆効果になります。
フルソリューション
コード スニペットだけが必要な人のために、Ian のソリューションの最終的な実装を次に示します。
<?PHP
// ...
function buildTitleChanger($search) {
?>
window.top.history.pushState({search : "<?PHP echo str_replace("\"", "\\\"", $search); ?>"}, document.title, window.location.search);
window.top.document.title = document.title;<?PHP
}
// ...
?>
そのインライン PHP では少し汚れていますが、100% の確率で動作します :3