7
  1. 我在 Chrome (Win7, 19.0.1084.56) 中设置了 rgba() bg-color
  2. 我用 window.getComputedStyle() 得到背景颜色,它是不同的
  3. 我将检索到的值设置在一个新元素上
  4. 我再次找回它,它再次不同

这是一个小提琴:http: //jsfiddle.net/zupa/KsuMp/

就我而言,前 4 个块在 Chrome 中具有以下内容:

  • 背景色:rgba(255, 0, 0, 0.503906)
  • 背景颜色:rgba(255, 0, 0, 0.5)
  • 背景颜色:rgba(255, 0, 0, 0.496094)
  • 背景颜色:rgba(255, 0, 0, 0.496094)

在 Firefox 中,我得到常量 rgba(255, 0, 0, 0.506)

所以,这似乎是一个错误。你能证明我错了或建议一个解决方法吗?我需要所见即所得编辑器的颜色,这正在扼杀我的单元测试。

4

2 回答 2

0

作为一种解决方法,您可以尝试将原始 RGBA 颜色存储在data-original-background元素上的 data-* 属性(也许?)中,并用于$().attr()从那里获取旧颜色值。这样,即使 Chrome 会以一种奇怪的方式四舍五入,它至少会始终以相同的方式四舍五入,因为它们都使用相同的基值。

编辑:这是我用 http://jsfiddle.net/aJfPn/1/的概念修改的小提琴之一

于 2012-07-13T19:18:58.360 回答
-1

在大学里,我了解到你永远不应该因为舍入错误而测试浮点数是否相等。只需在测试中包含一个容差即可。

于 2014-04-01T14:46:59.663 回答