42

Firefoxが最近バージョン6にアップデートされたとき、私が取り組んでいるサイトがひどく壊れました。

ハッシュタグのないページを閲覧しているときはサイトは正常に動作しますが、ハッシュタグのあるページ(例#test)に移動したり、ハッシュタグが適用された後にページを更新したりすると、ページは可能な限り迅速に更新されます。

これは、約1年半前に作成されたAsp.NetMVC2サイトです。

4

2 に答える 2

67

これは古いバージョンの 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();
 }
于 2011-08-18T17:52:53.003 に答える
3

MicrosoftAjax.js または MicrosoftAjax.debug.js を削除すると役立つ場合がありますが、ファイルをhttp://www.asp.net/ajaxlibrary/CDNAjax4.ashxの現在のバージョンに置き換えるだけでも問題ありません。

于 2012-06-13T15:47:20.757 に答える