HTML5のプレースホルダ属性を使用したいと思います(ニュースレターのカチオンではThought Resultsです)。しかし、古いブラウザーを使用すると、もちろんレンダリングされません。私はそれを模倣するためにJavaScriptを使用することができますが、私はそれを使用すべきではありませんし、それは古い方法で行われます。 HTML5のプレースホルダーの両方の属性を持つことができますが、それと同時に古いブラウザーでもシミュレーションできますか?後方互換性を念頭に置いてHTML5プレースホルダ属性を使用するにはどうすればよいですか?
8
A
答えて
9
ブラウザが属性をサポートしている場合は、検出することができます:
http://diveintohtml5.info/detect.html#input-placeholder
function supports_input_placeholder() {
var i = document.createElement('input');
return 'placeholder' in i;
}
それは、何もしないならば。そうでない場合は、JSを使用してプレースホルダの値を取得し、それをフィールドに挿入し(おそらくデフォルト値として)、適切なインタラクションを追加してHTML5プレースホルダの動作をシミュレートします。
6
@marcggは、JQueryプレースホルダプラグインを作成しました。このプラグインは、基本的には、サポートしていないブラウザのプレースホルダ機能を複製します。
https://github.com/marcgg/Simple-Placeholder
私はこの1つに決める前に、プレースホルダのプラグインの多くを通じて検索し、それがこれまでに素晴らしい作品。もともとこの類似した質問への回答でそれを見つけた:私はこの機能を検出するためのModernizrを使用することをお勧めします
1
。
if (Modernizr.input.placeholder) {
// your placeholder text should already be visible!
} else {
// no placeholder support :(
// fall back to a scripted solution
}
このライブラリを使用することに興味がない場合は、次のコードを使用できます。
function supports_input_placeholder() {
var i = document.createElement('input');
return 'placeholder' in i;
}
あなたがStackOverflowでここにその起源を持っていたSimple Placeholderを、使用することができますjQueryのを使用している場合は、サポートをフォールバックすることについて。
関連する問題
- 1. 入力タイプのパスワードのプレースホルダ属性にフォールバックを使用するにはどうすればよいですか?
- 2. 互換性パッケージを使用してDialogFragmentを表示するにはどうすればよいですか?
- 3. HTML5のプレースホルダの属性値にはどのような値の型を使用できますか?
- 4. CKEditorがアクティブになっているときにHTML5テキストエリアにプレースホルダ属性を表示するにはどうすればいいですか?
- 5. html5タグの新しい属性を作成するにはどうすればよいですか?
- 6. Python:プロパティを通常の属性に置き換えるにはどうすればいいですか?
- 7. 仮想属性にActiveRecord属性ヘルパーメソッドを追加するにはどうすればよいですか?
- 8. 「互換性のない」TYPO3-Extensionをコンポーザーにインストールするにはどうすればよいですか?
- 9. HTML5/JavaScript - ビデオソースにタイムスタンプ属性を追加するにはどうすればよいですか?
- 10. これらの互換性のないタイプを回避するにはどうすればよいですか?
- 11. Autofacを使用してアクションフィルタに属性をバインドするにはどうすればよいですか?
- 12. javascriptを使用してテキストボックスに属性を追加するにはどうすればよいですか?
- 13. SQLを使用してURL接頭辞を置き換えるにはどうすればよいですか?
- 14. Struts 2.xでHTML5属性を指定するにはどうすればよいですか?
- 15. 角2:コンポーネントの属性の属性変更を検出するにはどうすればよいですか?
- 16. Entity Framework 4.3でモデルの互換性チェックを無効にするにはどうすればよいですか?
- 17. カスタム属性を追加するにはどうすればよいですか?
- 18. JavaScript:属性を追加するにはどうすればよいですか?
- 19. XML属性を取得するにはどうすればよいですか?
- 20. XML属性を追加するにはどうすればよいですか?
- 21. HTML5の「ダウンロード」属性のサポートを検出するにはどうすればよいですか?
- 22. ID属性を使用してCSSの要素をスタイルするにはどうすればよいですか?
- 23. xpathを使用して要素の属性をチェックするにはどうすればよいですか?
- 24. if文を使用して属性の値を変更するにはどうすればよいですか?
- 25. プロパティデコレータを使用して属性を設定するにはどうすればよいですか?
- 26. JPA CriteriaQueryを使用してサブクラス属性を検索するにはどうすればよいですか?
- 27. 属性を使用して配列を印刷するにはどうすればよいですか?
- 28. javascriptを使用してビデオタグポスター属性を変更するにはどうすればよいですか?
- 29. Value Injectorを使用してターゲットプロパティの属性を検査するにはどうすればよいですか?
- 30. BeautifulSoupを使用して属性を挿入するにはどうすればよいですか?
これは機能しました。私はちょうど私の中の 'return 'プレースホルダーを理解していませんでした。それは技術的に何ですか?その意味? –
'in'演算子は、オブジェクト(この場合は' HTMLInputElement'オブジェクト)に与えられたプロパティがあるかどうかをテストします。 'placeholder'属性を実装しているブラウザも' placeholder'プロパティを 'HTMLInputElement'インターフェースに追加するので、これは' placeholder'のサポートの有効なテストです。 – Domenic
@Diogoあなたの編集は全く新しい答えです。この回答を編集する代わりに、新しい回答を作成してください。 –