2

EXTJSはブラウザに依存しないjavascriptライブラリだと聞きました。extjsはどのようにしてそれ自体をブラウザに依存させませんか?ライブラリクラスを開くと、次のようなコードは表示されません
。if(IE)// do this; else if(FF)//何か他のことをする;

extjsはブラウザに依存しないという私の理解は正しいですか?

4

2 に答える 2

5

sha の指摘に加えて、ExtJS はブラウザー機能の条件付きチェックを使用し、画像などを使用するか、特定の視覚効果に css を使用するかを選択することを認識しています。

これの 2 つの例は、画像を介して IE6 のウィジェットで丸みを帯びた角を生成することですが、それをサポートするものでは、CSS で「border-radius」を使用します。

これはウィジェットのグラデーションにも当てはまり、古いブラウザーでは画像としてレンダリングされますが、サポートされている場合は CSS3 グラデーションを使用します。

原則として、私が見た限りでは、ExtJS は「機能検出」を使用して、現在のブラウザーが何をサポートし、適切に応答するかを判断します。この別の例としては、サポートされている場合は SVG としてレンダリングされるチャート クラス、または古いブラウザーでは VML としてレンダリングされるクラスがあります。

ExtJS には、組み込みアクション以外で特定のことをしたい場合に機能検出を実行するために使用できるクラスがいくつかあります。これらを内部で使用して、何をレンダリングするかを決定していると思います。

それはさておき、ブラウザのバージョン間の奇妙な不一致に気付くことがあることに注意してください。通常、スクロールバーがあるブラウザでは表示され、別のブラウザでは表示されないなど、小さな視覚効果が発生します。コードですが、たとえば IE8、IE9、Chrome でテストを行っているときに、いくつかの小さな癖が時々見られることは知っています。

于 2012-04-25T08:46:06.420 に答える
4

ブラウザに依存しません。私の知る限り、ブラウザごとに異なる CSS 定義がいくつかあります。JS コードに違いがあるかどうかを確認したい場合は、さらに詳しく調べる必要があります。おそらくいくつかの ExtJs コア ファイルです。

これまで、IE、FF、Chrome、Safari、Mobile Safari などで使用してきました。

于 2012-04-25T01:35:47.103 に答える