FirefoxとIEの間に不満があります.JavaScriptで作業する前に、自動的にハッシュのパラメータをデコードします。 IEは自動的にURLをデコードしないので、読解エラーを出すことはありません。私は「!の%40%23%24%25 ^%に対しexample.com/#question=!%40%23%24%25^%26*(
Firefoxで自動的にエンコードされたパラメータをURL内でデコードします。
のようなURLを取る場合、私はASP.NET ASP.NET MVC automatically decoding JSON-encoded parameters from AJAXので
を使用していない以外
私の問題は、これと同じです26 *( "encodeURIComponentを使ってエンコードされましたが、IEにはハッシュにアクセスすると"!%40%23%24%25 ^%26 * "のように残されますが、Firefoxでは自動的にハッシュにアクセスします"!@#$%^ & *("
この問題は、私のスクリプトでは、decodeURIComponentを使用してエンコードされた値をデコードすることに問題があります。文字列が実際にエンコードされていれば問題ありません。 Firefoxで既にデコードされているので、不正な形式のURIシーケンスエラーが発生し、IEでエラーが発生することはありません。
どうすればこの問題を解決できますか?
ありがとうございます。私はちょうどFx(Chromeは問題ありません)とlocation.href.split( "#!")[1]で同じ問題に遭遇しました。 – meloncholy
Firefoxはこれもすぐにこれを修正するようには思われません。彼らは2002年以来バグについて議論してきました:(https://bugzilla.mozilla.org/show_bug.cgi?id = 135309とhttps://bugzilla.mozilla.org/show_bug.cgi?id=483304 – gregers
Firefoxはハッシュ文字列の中で "#"を許可しているので、より防壁になる可能性がありますので、 'window.location.hash.split( "#")。splice(1).join( "#") '。 – fourthnen