Firefoxが最近バージョン6にアップデートされたとき、私が取り組んでいるサイトがひどく壊れました。
ハッシュタグのないページを閲覧しているときはサイトは正常に動作しますが、ハッシュタグのあるページ(例#test
)に移動したり、ハッシュタグが適用された後にページを更新したりすると、ページは可能な限り迅速に更新されます。
これは、約1年半前に作成されたAsp.NetMVC2サイトです。
Firefoxが最近バージョン6にアップデートされたとき、私が取り組んでいるサイトがひどく壊れました。
ハッシュタグのないページを閲覧しているときはサイトは正常に動作しますが、ハッシュタグのあるページ(例#test
)に移動したり、ハッシュタグが適用された後にページを更新したりすると、ページは可能な限り迅速に更新されます。
これは、約1年半前に作成されたAsp.NetMVC2サイトです。
これは古いバージョンの MicrosoftAjax.js (Asp.Net MVC 2 と共にインストールされたもの) の問題であることが判明しました。
MicrosoftAjax.debug.js ファイルを開き、ファイルのバージョン番号を確認します。これが問題である場合、このファイルの先頭は次のようになります。
// Name: MicrosoftAjax.debug.js
// Assembly: System.Web.Extensions
// Version: 4.0.0.0
// FileVersion: 4.0.20526.0
それがこのバグを含むバージョンです。この記事の執筆時点での最新のファイル バージョンは 4.0.30205.0 です。最新バージョンにアップグレードすると、問題はなくなります。Nathan Foxのコメントで述べたように、 Microsoft cdnから最新バージョン、具体的には縮小版とデバッグ版を入手しました。
好奇心のために、javascript ファイルで問題を追跡しました。
バグのあるバージョンには以下が含まれます:
if ((Sys.Browser.agent === Sys.Browser.Firefox) && window.location.hash && (!window.frameElement || window.top.location.hash)) {
window.history.go(0);
}
新しいバージョンでは次のように修正されました。
if ((Sys.Browser.agent === Sys.Browser.Firefox) && window.location.hash && (!window.frameElement || window.top.location.hash)) {
(Sys.Browser.version < 3.5) ?
window.history.go(0) :
location.hash = this.get_stateString();
}
MicrosoftAjax.js または MicrosoftAjax.debug.js を削除すると役立つ場合がありますが、ファイルをhttp://www.asp.net/ajaxlibrary/CDNAjax4.ashxの現在のバージョンに置き換えるだけでも問題ありません。