Webページでいくつかの新しいHTML5フォーム属性と入力タイプを使用したいと思います。一部のブラウザはすでにそれらをサポートしていますが、他のブラウザはサポートしておらず、決してサポートしません。それが私がModernizrを使いたい理由です-そしてそれが私の問題の始まりでした。
私の理解では、Modernizrだけがポリフィルではなく、ブラウザーが新しいHTML5/CSS3のものに対応しているかどうかをテストできるスクリプトです。必要に応じて、これらの機能を「エミュレート」するポリフィルをロードして、サポートされていない/古いブラウザで使用できるようにすることができます。これは正しいと思いますか?
テスト/ロードについて:Modernizrでポリフィルをロードする正しいまたは最良の方法は何ですか?
ドキュメントで私はこれを見つけました:
Modernizr.load({
test: Modernizr.geolocation,
yep : 'geo.js',
nope: 'geo-polyfill.js'
});
しかし、いくつかのページもこのようにそれを行います:
if (Modernizr.touch){
// bind to touchstart, touchmove, etc and watch `event.streamId`
} else {
// bind to normal click, mousemove, etc
}
また、これらの機能がどのように検出されているかを実際に知るにはどうすればよいですか?Modernizr.geolocation
すべての機能検出に確かに存在するようなものはありますか?
Modernizr GitHubリポジトリには、ユーザーが提供した機能の検出も多数あります。これらを自分のバージョンのModernizrに実装するにはどうすればよいですか?それとも、ビルダーを使用するのが最善ですか?
Safariでは、HTML5フォームの検証は機能しますが、エラーメッセージを表示するためのUIはありません。基本的に、この機能は半分しか実装されていません。すでにここで述べたように、ModernizrがSafariで誤検知を出すのはそのためです:https ://github.com/Modernizr/Modernizr/issues/266 どうやら誰かがそのようなカスタムテストでこれを修正したようですが、私はまだ使用方法を理解していませんそれ。1