Javascript 跨浏览器确定背景色或数字格式的颜色

Javascript 跨浏览器确定背景色或数字格式的颜色,javascript,jquery,Javascript,Jquery,对于类似的问题,我已经做了很多回答。我只是想澄清一下我是否理解正确。我的目的是计算颜色 我一直在fire fox工作,在那里: var bkg_Colour = $("#test_Box_1").css("background-color"); // is red var fgd_Colour = $("#test_Box_2").css("background-color"); // is blue 分别返回rgb(255,0,0)和rgb(0,0,255) 这很好,我通过拆分元组并比较

对于类似的问题,我已经做了很多回答。我只是想澄清一下我是否理解正确。我的目的是计算颜色

我一直在fire fox工作,在那里:

var bkg_Colour = $("#test_Box_1").css("background-color");  // is red
var fgd_Colour = $("#test_Box_2").css("background-color");  // is blue
分别返回rgb(255,0,0)和rgb(0,0,255)

这很好,我通过拆分元组并比较它们,计算了前景和背景之间的距离

但是:

在internet explorer中,同样的代码返回“红色”和“蓝色”,当然计算失败

从前面的答案中可以看出,如果使用$(…).css,则无法以数字格式返回颜色(无论是背景色还是颜色)。而且似乎各种各样的篮圈都必须穿过才能覆盖所有的垒

那么,有没有一种不使用$(…).css的方法可以做到这一点呢

编辑

接下来,当我应用脚本中给出的示例代码并在FF中运行它时,在IE中运行它时,我会得到rgb(255,0,0),在结果中看到单词“red”但是 当我在IE中运行上述链接时,结果是rgb(xxx,xx,xx),因此我非常困惑。是否有服务器设置或其他原因导致IE在我服务的页面上出现这种行为

编辑


据我所知,目前在IE中,它会报告css中指定的颜色,即“绿色”、“蓝色”、“红色”或#808080等。而在ff中,它总是将其报告为rgb值。

我认为您必须求助于颜色名称词典。这类似于这个问题:至少在概念上是这样。

看看这把小提琴:。似乎在IE中工作,给你一个十六进制值。然后可以转换为rgb(a)->我可能误解了你的问题。您正在寻找一种一致的方式来获得rgb?以及任何数字格式的背景色。rgb很好。我看了看小提琴,它能用了。我只是想看看你对我做了什么不同。jQuery维护了一个用于此的插件,如果你将fiddle#xxxxx改为“绿色”,你会得到“绿色”…至少在IE8中,你知道这是否是一个详尽的标准列表。它看起来相当全面。我想你是对的,我将不得不考虑返回颜色为rgb(255255)或#ffffff或白色的查询。这里有一些这样做的例子。我只是想,如果有一种方法可以标准化.css(“背景色”)返回的内容,这是可以避免的。我不知道它是否完整,基本上它返回属性值(字符串等),所以“浅蓝色”或其他一些文本可能是从对象返回的值。浏览器只是简单地将其解释为显示一些实际的颜色,甚至可能会根据不同的颜色而有所不同。