2

さて、私はこれを10年弱前に書きました:

http://meyerweb.com/eric/tools/color-blend/

当時は問題なく動作していたと確信していますが、それ以来(または、誰が知っているか、おそらく常に)バグが入り込んでいます。次のように実証できます。

  1. 「hex」にとどまります。いくつかの色を選んでください。それらをブレンドします。
  2. キーボードで 16 進数の色を編集します (つまり、新しい 16 進数値を入力するか、そこにある値を変更します)。再びブレンドします。
  3. ここまでは順調ですね。
  4. モードを「RGB」に切り替えます。
  5. 番号の 1 つを編集します。
  6. ブレンディングも、タイプの切り替えも、何も機能しません。

なんで?どこが故障しているのかさえわかりません。

(はい、JS が非常に不器用で、グローバル変数やあらゆる種類の問題を使用していることは知っています。書き直す予定はあります。しかし、最初に、ここで何が問題になっているのかを理解し、可能であればどのように診断する必要があったかを理解する必要があります。私は Firefox JS デバッガーの非常に基本的な使い方をほとんど理解していないだけで、おそらく適切ではないことに注意してください。)

4

1 に答える 1

7

colorParse() の正規表現で大文字と小文字を区別しないスイッチが必要です。

色を .toUpperCase します...したがって、「rgb」は「RGB」になりますが、正規表現は小文字の「rgb」を置き換えようとしますが、これはできません。

col = c.replace(/[#rgb(]*/i, '');

正規表現の /i に注目して、大文字と小文字を区別しないようにします。

于 2012-09-07T18:43:14.657 に答える