私はちょうどlocation.href
またはlocation.hash
ようwindow.location
オブジェクトのいくつかのプロパティにパッチを適用する必要があります。それが可能かどうかはわかりません。私はすでにいくつかの方法を試していますが、何もできませんlocation.hrefのようなLocationオブジェクトの既存のプロパティを変更することはできますか?
たとえば、JavaScriptコードがlocation.href
プロパティの値を変更しようとすると、このサルパッチプロパティはhistory.pushState
関数を代わりに呼び出す必要があります。ロジックは次のコードのようになります。
var customLocation = {
set href(url){
history.pushState(null, '', url);
},
set hash(url){
history.pushState(null, '', url);
}
};
現在、私のWebブラウザのようなページにホストされている100同じドメインのアプリケーションがあります。自分のコードですべてのアプリケーションのナビゲーションを処理しようとしています。 Webブラウザはそれについて知るべきではありません。私は既にパッチhistory.pushState
とhistory.replaceState
をパッチしています。それは完璧に動作します。
PS。あらゆるコンテキスト(iframe)のほとんどのナビゲーションでは、ブラウザは常に、トップのブラウズコンテキストに新しい履歴エントリを作成します。これにより、ユーザーは戻るボタンを使用して以前の状態にナビゲートできます。これらのプロパティは、ブラウザ自体によって管理されているので、それは通常のブラウザで行うことができない研究の後、私はかなり自信を持っていることを
あなたはより具体的なことはできますか? 「いくつかのプロパティを修正する」とはどういう意味ですか? – mherzig
@mherzig私はちょうど私の質問を更新します。 –
Hmm。 'href'と' hash'はブラウザで処理されるので、設定されると実際のページ位置が変更されます。つまり、ページの位置を関数に設定しようとします。どちらが効果があっても、新しい「ページ」であり、おそらく上書きをリセットします。たぶん誰か他の人が考えているだろうが、私はこれらを完全に無効にすることはできないと思う。 – mherzig