当前位置:  开发笔记 > 编程语言 > 正文

如何正确检测浏览器对不透明度的支持?

如何解决《如何正确检测浏览器对不透明度的支持?》经验,为你挑选了1个好方法。

我有一些应用alpha透明度的javascript代码.在此之前,它会尝试检测浏览器支持的透明度类型,并将其存储在变量中以供日后使用.这是代码的样子:

// figure out the browser support for opacity
if (typeof br.backImg.style.opacity != 'undefined') 
    opacityType = 'opacity';
else if (typeof br.backImg.filters == 'object') 
    opacityType = 'filter';
else 
    opacityType = 'none';

对于Firefox和Safari,第一个条件为真,对于IE7,第二个条件为真,但对于IE6,它落到最后一个条件.为什么IE6没有过滤器对象?有没有更好的方法来检测这个?



1> some..:

在IE7它是过滤器小号和IE6是过滤器.

以下代码返回:

'opacity'如果支持style.opacity

用于MS过滤器的'过滤器'(IE <7)

MS过滤器的'过滤器'(IE7)

其他一切都没有"没有"

.

var opacityType=(
  (typeof o.style.opacity !== 'undefined') ? 'opacity' :
  /*@cc_on @if (@_jscript)
    (typeof o.filters === 'object') ? 'filters' :
    (typeof o.filter === 'string') ? 'filter' :
  @end @*/
  'none'
);

的@cc_on,@if和@_jscript在一使用条件注释,只有IE支持.

我在FF3,IE6,IE7,Opera9和Chrome 1上测试了这个,但在IE4,5或8上没有.

根据quirksmode, MS已将CSS从过滤器更改为-ms-filter,因此我不知道您使用IE8获得了什么结果.

根据mozilla的 不透明度,自FF 0.9,Opera 9和Safari 1.2以及IE4以来的过滤器一直受到支持.

我不喜欢做浏览器嗅探,但有时它是必要的,并且有条件的注释使得处理特定的IE事情变得更加容易.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有