2012-11-29 178 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