2012-11-29 145 views
2

众所周知的是IE8不支持CMYK JPG图像,它只是不使它们在所有:-(的Javascript功能检测CMYK图像

这里是一个岗位关于它http://www.plaveb.com/blog/cmyk-images-not-displayed-in-internet-explorer,有无数的人。

我的问题: 有AA办法有来自JavaScript的检测,类似于如何Modernizr的工作,以检查是否浏览器支持CMYK JPG图像

我可以把一个黑客在我的javascript改变行为?为ie8使用rgb jpg,但我希望黑客能够更强大一点。

感谢,

+0

为什么不只是*总是*使用RGB图像?您正在屏幕上查看网站,对吗?如果你真的对打印有兴趣,你可以在打印样式表(或类似的东西)中将图像替换为CMYK图像... – ahren

+0

使用任何服务器端语言,它们都应该具有执行此操作的功能。 ASP.NET - 位图API和PHP getImageSize应具有多个通道。 –

+0

@ahren - 当你说总是使用RBG图像时,是因为浏览器不会显示cmyk颜色吗?还是有其他原因? – rabs

回答

1

事情是这样的:(使用jQuery当然他们是HTML指令)

if ($.browser.msie && parseInt($.browser.version, 10) <= 8) { 
    alert('IE8 or below'); 
} else { 
    alert('Non IE8'); 
} 

和HTML - >

<!--[if IE 8]> 
<script type="text/javascript"> 
    ie = 8; 
</script> 
<![endif]--> 

确定这里是一些JavaScript,这个作品与RGBA,所以它应该与CMYK,你可以测试:

<html> 
<head> 
    <script> 
    var IS_CMYK_SUPPORTED = (function(){ 
     var value = 'cmyk(1%,1%,1%,0.5%)', 
     el = document.createElement('p'), 
     result = false; 
     try { 
      el.style.color = value; 
      result = /^cmyk/.test(el.style.color); 
     } catch(e) { } 
     el = null; 
     return result; 
    })(); 
    </script> 
</head> 
<body onLoad='alert("IS CMYK Supported:" + IS_CMYK_SUPPORTED)'> 
</body> 
</html> 
+0

大声笑,这是我正在使用的确切代码! – rabs

+0

我想看看是否有任何其他的方式来做到这一点,而不只是检查ie8 – rabs

+1

浏览器嗅探是有很大的缺陷,有条件的评论可能是最好的方式,因为你也可以使用它们来插入替代样式表来提供支持的图像代替。 – RobG