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

Eri*_*yer 2 javascript dom

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

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

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

  1. 保持'十六进制'.选择几种颜色.混合它们.
  2. 使用键盘编辑十六进制颜色(即,键入新的十六进制值,或更改那些值).再次混合.
  3. 到现在为止还挺好.
  4. 将模式切换为"RGB".
  5. 编辑其中一个数字.
  6. 现在没有任何作用 - 没有混合,没有类型切换,没有.

为什么?我甚至无法弄清楚它失败的地方.

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

Zac*_*aut 7

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

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

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

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

  • 嘿大家......我通过Chrome中内置的Pretty Printer(底部的Sources tab ... {}图标)运行Eric的代码,发现了这个错误,从中制作了本地副本,只是放入了几个控制台. log()语句,以查看返回的内容. (3认同)