2011-02-16 6 views
2

プレースホルダテキストを実装していないブラウザでプレースホルダテキストを実装するためのJavaScriptをいくつか書いています。YUI3 JavaScript:プレースホルダテキストのCSSを取得する

私は成功した次のスタイル規則を使用して4B11クロム9とFxの中にプレースホルダーテキストをスタイルしました:

::-webkit-input-placeholder { color: #969696 !important; } 
input:-moz-placeholder { color: #969696 !important; } 

は今、私は私のJavaScriptを理解していないブラウザではスタイルシートからこのデータを取得したいですこれらのルールは、プレースホルダテキストを手動でスタイルすることができます。

誰も私がYUI3でそれを行う方法を知っていますか?私が試した:

YUI().use('node',function(Y) { 
    var phColor = Y.all('::-webkit-input-placeholder').getStyle('color'); 
}); 

残念ながら、これは単に返す: "未定義:すべてのノードにバインドされていないと、{_query =" 入力:: - webkitの入力-プレースホルダ "_nodes =}"

誰もがどのように知っています私がすることができます?それとも可能ならば?

+1

すべてのブラウザのネイティブCSSオブジェクトは、ブラウザが理解できるルールしか表示しないため、 -webkit-input-placeholder "サポートされていないブラウザのオブジェクトは不可能だと考えました。 これを行う唯一の方法は、私が知る限り、[JSCSSP](http://glazman.org/JSCSSP/)のようなものを使用して直接CSSを解析し、必要なCSSルール私はこれを行うためにYUI3モジュールを書くかもしれません。 –

答えて

1

あなたが独占的にYUIを使用して販売(またはプラグインからjQueryのコードを収穫し、YUI3モジュールに変換して喜んでいる)このjQueryプラグインは、あなたがやろうとしている正確に何をしていない場合:https://github.com/mathiasbynens/Placeholder-jQuery-Plugin

私は実稼働環境でこれを使用しましたが、それはIE6と同じくらい元気に機能しています:)

+1

いいえ、そうではありません。私はすでに一般的なプレースホルダレプリケータコードを書いています。私が解決したいのは ':: - webkit-input-placeholder'や':-moz-placeholder'を使ってスタイルを決めることです。このプラグインはそれをしません。それが行うのは、 'class ="プレースホルダ "をプレースホルダを持つ要素に追加することです。そうすれば簡単にスタイルを設定できます。これは良い代替ソリューションです。私はそれが役に立つので投票しますが、これは実際に質問に答えるものではありません。 –

+0

私の間違い、私は誤解しました。うまくいけば、私がリンクしているプラ​​グインは受け入れ可能な選択肢を提供することができます。理想的には、CSSだけでHTML5プレースホルダのスタイルを設定するといいでしょう。これを可能にするソリューションを見つけたら、私は見たいと思うでしょう:) –

+0

解決策があるとは思わないので、これを受け入れています。私はそれに最も近いです。 –

関連する問題