2

Chromeを使用しているので、URL「http://www.example.com/a/123456789」をコピーしてIE8に貼り付けます。ルートが正しく設定されているので、問題なく動作します。

その後、別の場所に移動すると、期待どおりにIE8フォールバックURLが取得されます:「http://www.example.com/a#a/123456789」(ハッシュに注意)、すべて問題ありません。

ここに問題があります...

ここで、ハッシュ(http://www.example.com/a#a/123456789)を使用してリンクをコピーし、それを最新のブラウザーに貼り付けると、http://www.example.com/a#にダンプされます。 。_

誰かがこの行動の経験がありますか?

4

1 に答える 1

0

私はこれに対する少しの回避策を思いついたので、それが他の誰かを助けることができる場合に備えてそれを共有すると思いました...

// Make urls copied from IE8 work when pasted in modern browsers
if (history.pushState && location.hash.match(/#a{1}/)) {
    location.href = location.href.replace('a#a', 'a');
}

基本的に、ブラウザがプッシュ状態をサポートしているかどうか、および探しているハッシュがURLにあるかどうかを確認しました。ハッシュはpushStateで使用するものと同じであるため、すばやく置き換えるだけで済みます。

于 2012-12-17T19:28:27.057 に答える