tldr: プレースホルダー属性のネイティブサポートがないにもかかわらず、(inputElemnt の「プレースホルダー」) が IE8 で true と等しいのはなぜですか? (要素の属性) は、ネイティブ サポートを確認する良い方法ではありませんか? Javascript ライブラリ Modernizer が使用します。
長いです:
Defaultvalue ( http://unwrongest.com/projects/defaultvalue/ )という小さな Jquery プラグインがあります。Placeholder ( https://github.com/janjarfalk/jquery.placeholder.js )と呼ばれる小さな Jquery プラグインがあります。これは基本的に、HTML5 プレースホルダー属性のフォールバックです。
最近の更新で、これらの 3 行のコードを追加しました。ブラウザーがプレースホルダー属性をネイティブにサポートしている場合、Defaultvalue が実行されないことを期待します。
if('placeholder' in this){ // これは入力要素です false を返します。 }
IE8 と IE7 を除くほとんどのブラウザで動作するようです。何らかの理由で、これでキー「プレースホルダー」が見つかりますが、IE7/IE8 ではプレースホルダー属性がサポートされていないと思います。
私のコードは、Javascript ライブラリ Modernizer ( http://www.modernizr.com/ )のこのコードに触発されました。
(関数(小道具) { for (var i = 0, len = props.length; i < len; i++) { attrs[ props[i] ] = !!(inputElem の props[i]); } 属性を返します。 })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
私は何が欠けていますか?