IE8は必要な場合IE7モードに移行できます。 jQueryはこれをどのように検出しますか?具体的には、$.browser.version
の値は何ですか?
答えて
IE7モードのIE8はIE7を報告します。 しかし、ユーザーエージェントを分析して "Trident/4.0"をチェックすることができます。あなたは、この行が表示された場合、あなたはIE8
$.browser
obejctは、ブラウザ盗聴という概念を使用して入力されます。簡単に言えば、これは、ブラウザ、ロボット、およびページにアクセスする他の人が送信するユーザーエージェント文字列からデータをスキャンするプロセスです。
ユーザエージェントの偽造に対する脆弱性のため、このオブジェクトはjQueryの後のバージョンでは非推奨です。オブジェクト検出と機能検出($.support
を参照)が優先使用されるようになりました。
たとえば、Opera 8.5。 IEのように自分自身を識別するために使用される: http://www.javascriptkit.com/javatutors/navigator.shtml
$ .support:
http://docs.jquery.com/Utilities/jQuery.support
ユーザーエージェント:
http://en.wikipedia.org/wiki/User_agent
http://www.zytrax.com/tech/web/browser_ids.htm
オブジェクト検出:
http://www.quirksmode.org/js/support.html http://developer.apple.com/internet/webcontent/objectdetection.html
ブラウザスニッフィング:
http://en.wikipedia.org/wiki/Browser_sniffing
特徴検出:
これはうれしいことですが、IEが 'inline-block'を正しくサポートしているかどうかは、' support'プロパティの中からわかりますか? 'leadingWhitespace、tbody、objectAll、htmlSerialize、スタイル、href正規化、不透明度、cssFloat、scriptEval、noCloneEvent、boxModel' – nickf
それらのいずれかがあるかどうかは不明です。 .support関数を拡張しようとすることもできます(例:http://www.waytoocrowded.com/2009/03/14/jquery-supportminheight/)。あるいはこれをすでに拡張している人さえいるかもしれません。しかし、これは私には分かりません。 –
JQueryは、ブラウザからの指示を見ることしかできません。
IE7モードでは、ブラウザはIE7として自身を報告するため、JQueryに表示されます。
そして、ブラウザが嘘をつくことを教えてください –
まあ、種類... IE7モードでは、ブラウザが本当にIE7であるかのようにすべきです。ブラウザは、プログラムの実際のバージョンではなく、レンダリングエンジンのバージョンを報告しています。 – Guffa
で動作する私は、.NET開発者だと私はいつもこのkind'a問題
はそれを使用すること自由に落ちたために、私が作成したSessions.aspxページを使用するように、Iコードを共有することもできます。
私が作成したばかりのスクリーンキャスト(14秒)でわかるように、JavaScriptのナビゲータプロパティでMSIE 8とMSIE 7を指定すると、ページをレンダリングするエンジンがわずかに異なるため互換モードを変更すると変更されます(100%IE7エンジンではないことを覚えておいてください!代わりの方法でjQueryのBUITを使用する)
、ちょうど
IE8 IE7モードで通常のJavaScriptを使用
4.0(互換; MSIE 7.0;のWindows NT 6.0; WOW64。 Trident/4.0、GTB6、SLCC1、.NET CLR 2.0.50727、Media Center PC 5.0、.NET CLR 3.0.30618、.NET CLR 3.5.30729、InfoPath.2、OfficeLiveConnector.1.4、OfficeLivePatch.1.3)
ネイティブモードでIE8
4.0(互換。 MSIE 8.0 012; Windows NT 6.0; WOW64;トライデント/ 4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30618; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
コード:
var browserVersion = navigator.appVersion.toLowerCase();
if(browserVersion.contains('msie 8')) {
// IE 8
}
else if(browserVersion.contains('msie 7')) {
// IE 7
}
スクリーンキャストビデオ:http://www.balexandre.com/temp/showFlash.aspx?swf=2009-08-19_1138_ie8ie7.swf&w=952&h=742
うわー、そのセッションのページは、いつもより古くなっています – Kloar
が良いでしょうか? – balexandre
私はちょうど自分自身をこれをテストした(ちょうどIE8をダウンロードした)
にIE8をmet7と互換性のあるモードにするとこのようなタグは:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
$.browser.version
の値がまだ 8.0です!
- 1. IE9のIE8エミュレーションと正直なIE8の違いは何ですか?
- 2. jQuery .is( ":hover")IE8の場合
- 3. jQueryの.is場合:IE8
- 4. Flexが何らかの理由でIE8
- 5. はあなたがIE8でJSと
- 6. z-indexがie8、ie7ではない
- 7. jQuery focus()がIE8で動作しない場合があります
- 8. プレースホルダがIE8で動作しないのはなぜですか?
- 9. IE8がリフレッシュしないポップアップウィンドウ
- 10. IE8でgetBoundingClientRectが遅いのはなぜですか?
- 11. IE8でマップが機能しない
- 12. Z-IndexがIE8で動作しない
- 13. IE8でCSSドロップダウンメニューが機能しない
- 14. IE8でGifが表示されない
- 15. IE8でMustacheJSがレンダリングされない
- 16. Firefox、IE8でテーブルリンクが機能しない
- 17. FB.login()IE8でポップアップが閉じない
- 18. IE8でjqueryセレクタが動作しない
- 19. addEventListenerがIE8で動作しない
- 20. Storage.prototypeがIE8で動作しない
- 21. アコーディオンがIE8で動作しない
- 22. IE8でローテーションプロパティが機能しない
- 23. Facebook ConnectがIE8で動作しない
- 24. Fadein FadeOutがIE8で動作しない
- 25. IE8エミュレートIE7を作成するヘッドタグが機能しない場合はどうすればよいですか?
- 26. 一部はIE8で動作しない
- 27. IE7はIE8だと思いますか?
- 28. スライダーはIE8では動作せず、IE8のみで動作しますか?
- 29. IE7とIE8でデジタル証明書が見つからない
- 30. IE8でGoogle Mapsエラーの原因は何ですか?
「IE7標準モード」のIE 8では、$ .browser.versionから「8.0」が報告されます。 – bart