0

関数 window.location.pathname でパス名を変更したい。このソースコードを入手しました。

var hash = window.location.hash;
window.location.pathname = hash;

Mozilla では正しく動作しますが、Chrome では動作しません。クロム、この住所を書いてくれ。

/%23!stranka=novinky&cisloStranky=1&rubrika=novinky&clanek=783?stranka=kontakty#!stranka=novinky&cisloStranky=1&rubrika=novinky&clanek=783

ハッシュの値は#!stranka=novinky&cisloStranky=1&rubrika=novinky&clanek=783

誰かに何か考えがありますか?

ありがとう。

4

1 に答える 1

1

それ自体もlocation.hash含まれていることを理解する必要があります。#残りの部分はlocation.hash、仕様ごとに URL エンコードされていますが、そうで#はありません。

Firefoxにはプロパティに関連するバグがあるため、「仕様ごと」と言いました。location.hash

値を含むハッシュに変更する場合は、その前にlocation.pathnameをエンコードする必要があります。#

例:

var hash=location.hash.substring(1)
location.pathname='%23'+hash

ハッシュを含めたくない場合は、単に使用してください

var hash=location.hash.substring(1)
location.pathname=hash
于 2012-06-19T12:24:27.973 に答える