Javascript firefox和opera/chrome的screen.colorDepth值不同
我正在测试一个javascript,我在其中编写了这个Javascript firefox和opera/chrome的screen.colorDepth值不同,javascript,Javascript,我正在测试一个javascript,我在其中编写了这个 document.write("\n\n\n\n"+screen.colorDepth); switch(screen.colorDepth) { case 24: document.bgColor = "skyblue" ; break; case 32: document.bgColor = "yellow"; break; default: document.bgColor = "white";
document.write("\n\n\n\n"+screen.colorDepth);
switch(screen.colorDepth)
{
case 24: document.bgColor = "skyblue" ;
break;
case 32: document.bgColor = "yellow";
break;
default: document.bgColor = "white";
break;
}
但不幸的是,Firefox21.0和IE9显示的值为24,因此背景颜色变为天蓝色
opera(v12.01构建1532)和chrome(版本27.0.1453.94 m)显示32,因此背景变黄。我使用的是Win7 ultimate 32位,我原来的屏幕颜色深度是32位。有人能解释为什么会发生这种情况吗?我想他们使用不同的方法来解释颜色精度。32位的屏幕实际上只有24位的颜色 它是: 返回屏幕的颜色深度 Chrome似乎可以直接从系统中读取,而FF和IE9似乎可以正确(基于该定义)识别屏幕的颜色精度(颜色深度) 请注意,
screen.colorDepth
不是任何标准的一部分,它的实际工作方式取决于实现者
因此,在颜色深度方面检查颜色精度的更正确方法是:
case 16: document.bgColor = "..." ;
break;
case 24:
case 32: document.bgColor = "..."; //32 = 24 bit color depth + 8 bits alpha
break;
我猜他们使用了不同的方法来解释颜色精度。32位的屏幕实际上只有24位的颜色 它是: 返回屏幕的颜色深度 Chrome似乎可以直接从系统中读取,而FF和IE9似乎可以正确(基于该定义)识别屏幕的颜色精度(颜色深度) 请注意,
screen.colorDepth
不是任何标准的一部分,它的实际工作方式取决于实现者
因此,在颜色深度方面检查颜色精度的更正确方法是:
case 16: document.bgColor = "..." ;
break;
case 24:
case 32: document.bgColor = "..."; //32 = 24 bit color depth + 8 bits alpha
break;