現在、次のライブラリを使用しています。
http://widgetulous.com/placeholderjs/
そして、次のコードを使用して、使用の必要性を検出し、それを必要とするフィールドに適用します。
if navigator.userAgent.indexOf("MSIE")!= -1 or navigator.userAgent.indexOf("Trident")!= -1
$ ->
Placeholder.init()
numPlaceHolders = $('input[placeholder]').length
window.setInterval(=>
if ($('input[placeholder]').length != numPlaceHolders)
numPlaceHolders = $('input[placeholder]').length
Placeholder.init()
, 1000)
間隔を設定する理由は、要素が実行時に動的に生成されるためです (私は Angular JS を使用しています)。残念ながら、サポートは必須であり、プレースホルダー属性はサポートされていません...
だから私は質問する必要があります:
1) Placeholder 属性を持つすべての新しい入力フィールドに Placeholder.init() を強制的に適用するにはどうすればよいですか? 継続的なループ間隔を回避する方法はありますか? 私は DomChange イベント (さまざま) を認識していますが、私が知る限り、それらは a) 非推奨であり、b) ie でサポートされていませんか?
2)ブラウザの互換性を確認してから、私がやっているようにieを明示的に要求するより良い方法はありますか?