フォームに<input type="range">
コントロールを配置した場合、一部のブラウザではスライダコントロールが(正しく)レンダリングされ、他のユーザーはテキストボックスを代わりにレンダリングすることはありません(range
)。このケースを処理するには、テキストボックスに任意のテキストを含めることができるため、追加の検証が必要です。私がページに入れて「DOMでこのコントロールを見てください。それがテキストボックスコントロールなら、foo()
を実行してください」というJavaScriptはありますか?このsite recommends using ModernizerHTML5入力コントロールがサポートされているかどうかを検出するにはどうすればよいですか?
5
A
答えて
9
:HTML5の入力タイプのチェック
は検出技術#4を使用しています。まず、ダミーの<input>
要素をメモリに作成します。すべての<input>
要素のデフォルトの入力タイプは "text"です。これは非常に重要であることがわかります。
var i = document.createElement("input");
次に、ダミー要素のtype属性を検出する入力タイプに設定します。
i.setAttribute("type", "color");
ブラウザがその特定の入力タイプをサポートしている場合、タイププロパティは設定した値を保持します。ブラウザがその特定の入力タイプをサポートしていない場合は、設定した値は無視され、typeプロパティは引き続き「テキスト」になります。
return i.type !== "text";
代わりの13機の別々の機能を自分で書いて、あなたはHTML5で定義されたすべての新しい入力タイプのサポートを検出するために、Modernizrを使用することができます。 Modernizrは、単一の<input>
要素を再利用して、13種類の入力タイプすべてのサポートを効率的に検出します。 Modernizr.inputtypes
と呼ばれる13個のキー(HTML5タイプの属性)と13個のブール値(サポートされている場合はtrue、そうでない場合はfalse)を含むハッシュを作成します。
//check for native date picker
if (!Modernizr.inputtypes.date) {
// no native support for <input type="date"> :(
// maybe build one yourself with Dojo or jQueryUI
}
の
+0
HTML 5 shim ...を誤ったHTML 5 shivでチェックアウトしてください。 – ErikE
関連する問題
- 1. HTML5ビデオタグで動画ファイルがサポートされているかどうかを検出するにはどうすればよいですか?
- 2. ファイル入力にファイルが選択されているかどうかをJQueryを使って検出するにはどうすればよいですか?
- 3. SSLがサポートされているかどうかを検出
- 4. ユーザーがスペースバーに入ったかどうかを検出するにはどうすればよいですか?
- 5. JavaScriptでは、入力に文字が含まれているかどうかを検出するにはどうすればよいですか?
- 6. URL()コンストラクタがブラウザでサポートされているかどうかを検出するにはどうすればよいですか?
- 7. デバイスがjQuery Mobileでサポートされているかどうかを検出する
- 8. HTML5の「ダウンロード」属性のサポートを検出するにはどうすればよいですか?
- 9. Mac上でC#を使用してスペースバーが入力/押されたかどうかを検出するにはどうすればよいですか?
- 10. Android setPreviewSize、320x480と480x320の両方がサポートされているかどうかを検出するにはどうすればよいですか?
- 11. HTML5入力がサポートされているかどうかを確認する方法は?
- 12. サーブレットでフォーム入力がクリアされないようにするにはどうすればよいですか?
- 13. 不要なクロムコンテンツスクリプトがマイページに挿入されているかどうかを検出するにはどうすればよいですか?
- 14. オートフィルでフォーム要素が入力されたかどうかを検出するにはどうすればよいですか?
- 15. アプリケーションがドキュメントベースであるかどうかを検出するにはどうすればよいですか?
- 16. デバイスがアンドロイドウェアであるかどうかを検出するにはどうすればよいですか?
- 17. スクリプトマネージャーがページにあるかどうかを検出するにはどうすればよいですか?
- 18. タッチイベントがEditText内にあるかどうかを検出するにはどうすればよいですか?
- 19. ファイルがネットワーク上にあるかどうかを検出するにはどうすればよいですか?
- 20. 入力を検証するにはどうすればいいですか?
- 21. JavaScript:Symbol.toStringTagがサポートされているかどうかを検出します。
- 22. デバイスがルート(Android)かjailbroken(iOS)かどうかを検出するにはどうすればよいですか?
- 23. コンパイラオプション(アサーションなど)がONに設定されているかどうかをランタイムで検出するにはどうすればよいですか?
- 24. 別の入力に応じて入力を検証するにはどうすればよいですか?
- 25. 他のアプリがユーザーによって購入されたかどうかを検出するにはどうすればよいですか?
- 26. iOSデバイスがぼかし効果をサポートしているかどうかを検出するにはどうすればよいですか?
- 27. ページが表示されていることを検出するにはどうすればよいですか?
- 28. 検索バーが拡張されているかどうかを検出するにはどうすればよいですか?
- 29. タイプがstd :: tupleかどうかを検出するにはどうすればよいですか?
- 30. msiがタイムスタンプされているかどうかを調べるにはどうすればよいですか?
可能重複[チェックする方法、HTML5の入力がサポートされている場合は?](http://stackoverflow.com/questions/8278670/how-to-check-if-a-html5-input-isサポートされています) – Mathletics