2011-08-17 8 views
9

Firefox 4のリリースでは、ScrollPositionデータがFirefoxユーザーに送信されないため、最近問題が発生しました。これは、browsercapsファイルがFirefox 3.xの機能のみを指定しているために発生します。この問題の解決策の1つは、すべてのサーバー上でbrowsercapsファイルを更新し、いつでも新しいバージョンのFirefox(またはChromeなど)がリリースされることです。さて、この問題に対処する前に、私たちはすでにFirefox 6を使用しています。これは実行したくないレースのようです。Page.ClientTarget = "uplevel"をすべてのページに設定する際の欠点は何ですか?

マスターページのPage.ClientTarget = "uplevel"を設定すると(すべての場合、無条件に)、Firefoxの特定のScrollPositionの問題が修正されています。解決策としてのこれに対する否定的な結果は何ですか? Androidブラウザのユーザーは、さらに悪い経験をしていますか?彼らは単に不必要に大きなページを今すぐダウンロードするつもりですか?私たちはこれをしてはならない理由はありますか?

Page.ClientTargetのドキュメントはかなり怖いです:インターネット Explorerの6.0と同等のブラウザ機能を指定する

上位レベル、。

..と誤っている、または少なくとも誤解を招くようです。 IE6が最も優れたブラウザであったときに書かれたようです。 「アップレベル」とは、「ブラウザがすべての能力を備えていると想定する」か「IE6を扱うように扱う」ということですか?

+0

firefoxの現在のリリースでは、先進的な正規表現(以前のパッチのような「1桁のメジャーバージョン」のバグはありません)を使用してください。この問題が続くかどうかを確認してください。 – naveen

+0

はい、それでも問題はありません。バージョン番号を4未満に戻す以外に、Firefoxを使って問題を解決することはできません。browsercapsファイル(これまで触れていない)は、Firefox 4の以前のバージョンを上位ブラウザとして指定します。 –

+0

+1アンティークMSDNリンクの場合+1彼らは実際にそれを更新すべきです。 – naveen

答えて

3

WebFormsに効果的に「レイオフ」を設定したい場合は、Uplevelの動作を設定しますが、これはマスターページより前のPage_Initで行います。この時点で、WebFormsは皆さんが自分のものよりも新しいブラウザだとみなします。

1

ブラウザの実際の制限をテストすることができないため、私はホワイトリストの代わりにブラックリストを使用することをお勧めします。ブラウザが知られていない場合サポート機能X 。

ブラウザのすべてのバージョンをブラックリストに登録することもできます(例: IEのどのバージョンも機能Xをサポートしていません)。 IEが機能Xをサポートしたら、ブラックリストを更新する必要があります。

ブラウザのアップグレードでは、このスキームは中断されません。

+0

ブラックリストを実装するためにどのようなメカニズムを使用しますか? –

+0

.NET内 - browsercaps – orip

+0

ブラックリスト内の特定のブラウザで明示的に無効にする機能の例は何ですか?これらの機能を有効にしておくことの結果はどうなりますか? –

0

これは、「何の欠点がある」という質問への答えではありませんが、:あなたはbrowsercapsファイル内ブラウザのバージョン検出で正規表現を使用することができます

たとえば、2011年11月13日、マイクロソフトはASP.NET 4.0用の更新プログラムをリリースしました。これはIE10を上位リストに追加しました(\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsersにあるie.browserファイルのバグを修正しました)。彼らは一桁のメジャーバージョンしかチェックしていない正規表現を持っていましたが、パッチの後にIEバージョン> = 6がアップレベルとみなされます。

<capability name="majorversion" match="[6-9]" /> 

変更後:変更前

<capability name="majorversion" match="[6-9]|[1-9]\d+" /> 

私はあなたがこの問題、それ以上に実行されていない推測している、少なくとも同程度の2011年10月26日理由は、 firefoxディレクティブは正規表現を使用して上位バージョンとして検出します> = 3:(firefox.browserファイルから)

しかし、まだprobsがある場合は、firefox.browserファイル

関連する問題