Javascript 输出停止,调试不进行';行不通
在“终极颜色转换器”上工作,就像做一些事情一样,我可以让颜色模型转换为HSL,但由于某种原因,当我将HSL转换回来时,整个事情都中断了。我甚至不能再提交了 我还在代码中添加了一堆调试行,在这些代码中,代码中断了,但没有向控制台报告任何内容 我当前的项目可以在这里找到:或者 由于代码非常长,我将不发布整个内容,而只发布其中的一部分Javascript 输出停止,调试不进行';行不通,javascript,debugging,Javascript,Debugging,在“终极颜色转换器”上工作,就像做一些事情一样,我可以让颜色模型转换为HSL,但由于某种原因,当我将HSL转换回来时,整个事情都中断了。我甚至不能再提交了 我还在代码中添加了一堆调试行,在这些代码中,代码中断了,但没有向控制台报告任何内容 我当前的项目可以在这里找到:或者 由于代码非常长,我将不发布整个内容,而只发布其中的一部分 else if (type == 'hsl') { hsl = type;console.debug(hsl = type); /* START R
else if (type == 'hsl') {
hsl = type;console.debug(hsl = type);
/* START RGB */
c = type.slice(4).split(',');console.debug('Removed first 4 chars');
c[2] = c[2].substring(0, c[2].length - 1);console.debug('Removed last bracket');
c = hslToRgb(c[0],c[1],c[2]);console.debug('Convert to RGB');
rgb = 'rgb(' + c.join() + ')';console.debug('Sets RGB');
/* END RGB */
/* START RGBA */
rgba = (rgb.substring(0, rgb.length - 1) + ',1)').splice(3,0,'a');console.debug('Sets RGBA');
/* END RGBA */
/* START HEX */
hex = '#';console.debug('Starts hex');
for (i=0;i<3;i++) {
c[i] = +c[i];console.debug('Coerces to number: ' + i);
hex += (c[i] < 16 ? "0" : "") + c[i].toString(16).toUpperCase();console.debug('Sets hex part: ' + i);
}
/* END HEX */
}
function hslToRgb(h, s, l){
var r, g, b;
if(s == 0){
r = g = b = l; // achromatic
}else{
function hue2rgb(p, q, t){
if(t < 0) t += 1;
if(t > 1) t -= 1;
if(t < 1/6) return p + (q - p) * 6 * t;
if(t < 1/2) return q;
if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
return p;
}
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
var p = 2 * l - q;
r = hue2rgb(p, q, h + 1/3);
g = hue2rgb(p, q, h);
b = hue2rgb(p, q, h - 1/3);
}
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
}
else if(type==“hsl”){
hsl=type;console.debug(hsl=type);
/*启动RGB*/
c=type.slice(4).split(',');console.debug('删除了前4个字符');
c[2]=c[2]。子字符串(0,c[2]。长度-1);console.debug('删除了最后一个括号');
c=hslToRgb(c[0],c[1],c[2]);console.debug('Convert to RGB');
rgb='rgb('+c.join()+')';console.debug('Sets rgb');
/*结束RGB*/
/*启动RGBA*/
rgba=(rgb.substring(0,rgb.length-1)+',1')).splice(3,0,'a');console.debug('Sets rgba');
/*结束RGBA*/
/*起始十六进制*/
hex='#';console.debug('startshex');
对于(i=0;i1)t-=1;
如果(t<1/6)返回p+(q-p)*6*t;
如果(t<1/2)返回q;
如果(t<2/3)返回p+(q-p)*(2/3-t)*6;
返回p;
}
var q=l<0.5?l*(1+s):l+s-l*s;
var p=2*l-q;
r=hue2rgb(p,q,h+1/3);
g=hue2rgb(p,q,h);
b=hue2rgb(p,q,h-1/3);
}
return[Math.round(r*255)、Math.round(g*255)、Math.round(b*255)];
}
我应该注意,
type
以hsl(0,0,1)
或任何正在输入的形式出现。我发现了问题所在。我忘了把type=='hsl'
改成colortype=='hsl'
现在一切都好了