为什么我的JS会默默地死?

时间:2012-09-07 18:28:43

标签: javascript dom

好的,所以我在十年前写了这篇文章:

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

我很确定它当时工作正常,但从那以后(或者,谁知道,也许总是),一个错误已经悄悄进入。我可以这样说明:

  1. 留在'十六进制'。选择几种颜色。混合它们。
  2. 使用键盘编辑十六进制颜色(即,键入新的十六进制值,或更改那些值)。再次混合。
  3. 到目前为止一直很好。
  4. 将模式切换为“RGB”。
  5. 编辑其中一个数字。
  6. 现在没有任何作用 - 没有混合,没有类型转换,没有。
  7. 为什么呢?我甚至无法弄清楚它失败的地方。

    (是的,我知道JS很笨拙,并使用全局变量和各种ick。我打算重写它。但首先我需要了解这里出了什么问题,如果可能的话我应该怎么做我自己已经诊断出来了。请注意,我几乎不了解如何以非常基本的方式使用Firefox JS调试器,而且可能不正确。)

1 个答案:

答案 0 :(得分:7)

你需要在colorParse()中对正则表达式进行不区分大小写的开关。

你.toUpperCase颜色...所以'rgb'转到'RGB'然后你的正则表达式试图替换它不能做的小写'rgb'。

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

注意正则表达式中的/ i使其不区分大小写。