Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的JS会悄然死去?_Javascript_Dom - Fatal编程技术网

Javascript 为什么我的JS会悄然死去?

Javascript 为什么我的JS会悄然死去?,javascript,dom,Javascript,Dom,好吧,我在不到十年前写了这个: 我很确定当时它工作正常,但从那时起(或者,谁知道,也许总是),一个bug悄悄地出现了。我可以这样证明: 保持“十六进制”。选择一些颜色。混合它们 用键盘编辑十六进制颜色(也就是说,键入新的十六进制值,或更改其中的十六进制值)。再次混合 到目前为止还不错 将模式切换到“RGB” 编辑其中一个数字 现在什么都不起作用了,没有混合,没有类型切换,什么都没有 为什么??我甚至不知道它在哪里失败了 (是的,我知道JS非常笨拙,使用全局变量和各种ick。我确实计划重写它。但

好吧,我在不到十年前写了这个:

我很确定当时它工作正常,但从那时起(或者,谁知道,也许总是),一个bug悄悄地出现了。我可以这样证明:

  • 保持“十六进制”。选择一些颜色。混合它们
  • 用键盘编辑十六进制颜色(也就是说,键入新的十六进制值,或更改其中的十六进制值)。再次混合
  • 到目前为止还不错
  • 将模式切换到“RGB”
  • 编辑其中一个数字
  • 现在什么都不起作用了,没有混合,没有类型切换,什么都没有
  • 为什么??我甚至不知道它在哪里失败了


    (是的,我知道JS非常笨拙,使用全局变量和各种ick。我确实计划重写它。但首先我需要了解这里出了什么问题,如果可能的话,我自己应该如何诊断。请注意,我只是不太懂如何使用Firefox JS,而且可能不太正确调试器。)

    在colorParse()中的正则表达式上需要一个不区分大小写的开关

    你的。toUpperCase颜色…所以“rgb”变成“rgb”,但是你的正则表达式试图替换小写的“rgb”,这是它做不到的

    col=c.替换(/[#rgb(]*/i,”)


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

    在chrome中打开开发工具,或在ff中打开firebug,看看您看到了什么。我需要更多的指导。我们是否有可能看到格式良好的(javascript)版本代码?你需要调试,除非善良的灵魂愿意为你调试。我不好,Chrome的视图源代码忽略了换行符。IE9的版本要好得多:)天哪…这很有道理。现在,真正的问题是:为什么我要把文本大写?我想不出一个理由为什么这是一个好主意。我会/我不管regexp,但我应该看看我是否可以停止翻转大小写。请稍等,我测试一下。嘿,各位……我通过运行Eric的代码thr发现了这个错误通过Chrome内置的漂亮打印机(底部的Sources tab…{}图标),从中制作本地副本,然后放入几个console.log()语句以查看返回的内容。@Eric,您可能添加了
    toUpperCase()
    在删除RGB前缀之前将其标准化。用户可能会在各种情况下输入它。