無料ブログ「rentafree.net」の管理人ブログ

ブログエディターの色選択ツールを修正しました

朝の記事で、
<input type="range">
を使った色選択ツールのサンプルを作りましたが、
<input type="range">
はFirefoxに実装されてないので出来ませんが、
カラーパレット(16色)は実装できるので、
パレットだけでも先に実装しちゃったほうが、後で再修正するにしても楽なので、
ブログエディターの色選択ツールを修正しました。

変更したのは新エディターだけです。

Firefoxが
<input type="range">
<input type="number">
を実装したら、
非対応でスライダーが使えなくても致命的ではありませんから、
古いバージョンは無視して再修正すると思います。

今回の修正のメインは16色パレットのクリックでの色指定ですが、
他に、
今までは16進6桁又はRGB10進以外が設定されている場合はRGB値の取得を行なっていなかったので、色選択ツールは#000000で起動しましたが、
パレットにある16色(小文字指定限定)か、16進3桁で設定されている場合にもRGB値を取得するようになりました。
また、RGB値を取得できないパターン(未定義color name)はRGB初期値が(0,0,0)になりますが、色コード自体は設定値のまま表示されます。

Operaのバージョン取得が正常にできていませんでした

OperaのUser-Agentは、バージョン10以降、
Opera/9.80 (X11; Linux x86_64; U; Edition Next; ja) Presto/2.10.289 Version/12.00
のように、
全部"9.80"となって、末尾の
Versionがバージョンになるらしいんで、
全部9.80になってました。

一応対応したんですが、
この仕様かなりうざい。
Opera判別のためのコード1行増やさなきゃいけないし、
Version/xx.xxが確実に末尾でない場合、取得難しい。

色選択ツールのサンプル作ってみた

<input type="range">
を使った色選択ツールを試作してみました。

ブログエディターのタグ設定の色選択ツールをこんな感じに修正したいんだが、
<input type="range">
<input type="number">
を使ってるが、現状、Chrome、Opera、Safariは対応しているが、
新エディターはFirefoxしか対応していないので、
現状は実装できない。


サンプル
        
        
R
G
B
  #000000


サンプルは、
Chrome、Opera、Safari
で機能すると思います。

今の色選択ツールのスライダーは独自実装だが、
<input type="range">
で、ブラウザ標準機能でスライダーが表示できる。

あと、16色パレットつけてみた。
クリックで設定。

<input type="color">
も考えたが、
色以外の設定項目と並べる関係で、
やっぱり、色選択ツールはポップアップする感じのほうが良さそう。
イベント駆動でブラウザのカラーピッカーを起動できればいいんだが、そういうことはできないと思われる。