2009-11-25 11 views
5

使用的線沿線的東西:有沒有可行的辦法配備檢測圖像的支持:數據的base64

background:url(data:image/gif;base64,R0lGODlhIwAhALMAAAAAADQ0NENDQ25ubouLi6ioqLa2ttPT0/Dw8P///wAAAAAAAAAAAAAAAAAAAAAAACwAAAAAIwAhAAAIpQABCBxIsCCAAAYTKlw4cECCAQwjMnSY4KHEiwQpVrSIUaLGjRw7Kvy4EYEAkSNBljyJ0iDJiiZbulQJk6XMhjQTxLyJk+ZOngBe6rTJU+jPojmTKqXZc6nTpAKFPp0qsMDUqyoHWsWKleBWrk8LfgV5AKjYnGXNakWrdi3NtG3HbjTQtmrOAnUByK2It+7eBH3j5iSQVy5cv3PzegWsuCDExmYDAgA7) no-repeat center center;} 

是不錯,但我希望能夠提供優雅降級(CSS的斷言是通過JavaScript )當base64不可用時。

很顯然,IE之前的V8缺乏這種功能,所以我可以通過瀏覽器去 - 但我更喜歡讓它檢測到功能,如果可能的話。

關於如何去做的任何想法?

回答

6

這可能是你在找什麼:http://weston.ruter.net/2009/05/07/detecting-support-for-data-uris/

我的工作,增加了在IE6的DataURI方案的部分支持的腳本+:http://phenxdesign.net/projects/phenx-web/iedatauri/example.php和代碼是在這裏:http://code.google.com/p/phenx-web/source/browse/trunk/iedatauri/

IE5 +支持排序數據URI的太,它是但不總是可能的使用方式:http://www.betalon.com/blog/html_css/data-uri-in-css-crossbrowser.htm

+0

+1所鏈接的方法,這是檢查 – curtisk 2009-11-25 13:28:43

+0

感謝乾淨,方便的方式,企業是否太好了:) – 2009-11-25 13:54:28

2

使用上述延長的mootools Browser.Features對象(如果任何人發現它是有用的,Modernizr的不支持它)

http://www.jsfiddle.net/dimitar/5JT45/13/show/https://gist.github.com/821370

(function() { 
    Browser.Features.base64 = null; 
    var callback = function() { 
     Browser.Features.base64 = this.width == 1 && this.height == 1;   
     // alert(Browser.Features.base64); // true || false 
    }; 

    var img = new Image(), img = document.id(img) || new Element("img"); 
    img.onload = img.onerror = img.onabort = callback; 
    // 1x1 px gif to test with 
    img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="; 

})(); 
1

發現這個插件的Modernizr對他們的wiki https://github.com/Modernizr/Modernizr/issues/14

Modernizr.addTest('datauri',function(){ 
    var data = new Image(); 
    data.onload = data.onerror = function(){ 
    return (this.width == 1 && this.height == 1); 
    } 
    data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="; 
}) 
相關問題