asfman
android developer
posts - 90,  comments - 213,  trackbacks - 0
作者 andot

在写 JavaScript 时,有时候我们需要的颜色值必须是 #RRGGBB 形式(例如在进行色系转换时),但是我们无法保证颜色的输入值一定是 #RRGGBB 的形式,例如 Red,rgb(255, 0,0),#333 等也是合法的颜色值表示形式,另外还有一些不合法的颜色值输入,例如333333这种没有#开头的RGB形式,或者其他根本不是颜色值的字符串都有可能被输入,如何来把这些都统统地转化为 #RRGGBB 形式呢?这里提供一个 JavaScript 函数,可以很容易的进行这个转化。

  1. function parseColor ( vValue ) {
  2.     var oColorParser = document . createElement ( " body " ) ;
  3.     oColorParser . bgColor = vValue ;
  4.     return oColorParser . bgColor ;
  5. }

当然不要指望这个函数能够把所有的值都转化为对的,只有 Red 和 333333 这种非 #RRGGBB 形式转化出来才是对的,对于其他的输入方式,不同的浏览器得出来的值是不一样的,例如:

  1. document . writeln ( parseColor ( ' red ' )) ;
  2. document . writeln ( parseColor ( ' rgb(255,0,0) ' )) ;
  3. document . writeln ( parseColor ( ' #f00 ' )) ;
  4. document . writeln ( parseColor ( ' #ff0000 ' )) ;
  5. document . writeln ( parseColor ( ' ff0000 ' )) ;
  6. document . writeln ( parseColor ( ' f00 ' )) ;
  7. document . writeln ( parseColor ( ' fdafdadfadsfas ' )) ;

这个在 Internet Explorer 上的输出结果是:

  1. #ff0000 #ff0000 #0f0000 #ff0000 #ff0000 #0f0000 #fdad0f

但是在 Firefox 上的输出结果却是:

  1. #ff0000 #002500 #000000 #ff0000 #ff0000 #000000 #fddaad

而在 Opera 上的输出结果是:

  1. #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #fdafda
posted on 2006-04-03 15:26 汪杰 阅读(218) 评论(0)  编辑 收藏 引用 所属分类: hengxing网站js
只有注册用户登录后才能发表评论。

<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(15)

随笔分类(1)

随笔档案(90)

文章分类(727)

文章档案(712)

相册

收藏夹

http://blog.csdn.net/prodigynonsense

友情链接

最新随笔

搜索

  •  

积分与排名

  • 积分 - 459286
  • 排名 - 6

最新随笔

最新评论

阅读排行榜

评论排行榜