4

Web アプリケーションでは、次のような特殊文字を使用していますexample.com/foo#вап

を使用してハッシュを解析しdecodeURI(window.location.hash)(ハッシュにはエンコードされていない特殊文字が含まれる場合があります)、 のような新しい値を設定しますwindow.location.hash = "вап"

Chrome、Firefox、Opera、さらには IE でもすべて正常に動作しますが、Safari20?では代わりにвап.

Safari のようにハッシュを設定すればwindow.location.hash = encodeURI("вап");動作しますが、もちろん Chrome や FF などでは動作しません。

4

2 に答える 2

5

最後に、解決策を見つけました。ハッシュを設定すると、window.location.hrefすべてが正常に機能します。

コードは次のとおりです。

var newHash = ...
var sharpIdx = window.location.href.indexOf("#");
if (sharpIdx === -1) {
  window.location.href = window.location.href + "#" + newHash;
} else {
  window.location.href = window.location.href.substr(0, sharpIdx) + "#" + newHash;
}
于 2013-04-07T11:06:16.740 に答える