以前のJavaScriptプログラミングでは、ブラウザの種類やバージョンで動作を変えるといった処理が散見されていましたが、ブラウザの種類やバージョンが多様化している現在、そうした方法を取ることには限界があります。
そこでModernizrのように、「実行時にプラットフォームの機能テストを行う(Feature Detectionといいます)」といったアプローチが重要になってきました。
Modernizrを使用すれば、以下のような記述でブラウザの機能テストを行えます。
if (Modernizr.canvas) {
// ブラウザがcanvasを利用できる場合の処理
...
}
バージョン2.5で追加された機能としては、ベンダプレフィックスを自動的に付与してくれるModernizr.prefixed()というメソッドがあります。
仕様が確定していない機能を先行実装するために、各ブラウザベンダは「ベンダプレフィックス」という特殊な接頭辞をAPIに付与するという慣習があります。この接頭辞はブラウザベンダごとに異なる(webkit、moz、ms、oなど)ため、1つの機能を利用するためだけに、ベンダプレフィックスを総当たりで調べる、もしくは利用するといったコーディングが必要とされてきました。
Modernizr.prefixed()を使用すると、こうした処理をかなり簡潔に記せます。例えば、「Modernizr.prefixed('boxSizing')」とすれば、Firefox上では'MozBoxSizing'、ChromeやSafari上では'WebkitBoxSizing'という文字列が返ってきます。
Modernizr.prefixed()は他にも、ベンダプレフィックス付きの関数やコンストラクタを自動的に判定し、返せます。さらに詳しく知りたければ、ドキュメントを参照するとよいでしょう。
0 件のコメント:
コメントを投稿