Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 firefox和opera/chrome的screen.colorDepth值不同_Javascript - Fatal编程技术网

Javascript firefox和opera/chrome的screen.colorDepth值不同

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";

我正在测试一个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";
        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;