码迷,mamicode.com
首页 > 编程语言 > 详细

webp实践的javascript检测方案

时间:2014-10-10 18:03:34      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   java   sp   div   on   cti   log   

function hasWebp () {
    // 查看Cookie,如果没有则进行以下逻辑
    var img = new Image();
    img.onload = handleSupport;
    img.onerror = handleNotSupport;
    img.src = ‘data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAsAAAABBxAREYiI/gcAAABWUDggGAAAADABAJ0BKgEAAQABABwlpAADcAD+/gbQAA==‘;
    // 否则根据Cookie执行handleSupport或者handleNotSupport
}
function handleSupport() {
    setCookie(‘swebp‘, ‘true‘, 2592000); // 30天过期
}
function handleNotSupport () {
    setCookie(‘swebp‘, ‘false‘, 2592000);
}

  

下面是 localStorage版本

function detectWebp () {
    if (!window.localStorage || typeof localStorage !== ‘object‘) return;

    var name = ‘webpa‘; // webp available
    if (!localStorage.getItem(name) || (localStorage.getItem(name) !== ‘available‘ && localStorage.getItem(name) !== ‘disable‘)) {

        var img = document.createElement(‘img‘);

        img.onload = function () {
            try {
                localStorage.setItem(name, ‘available‘);
            } catch (ex) {
            }
        };

        img.onerror = function () {
        try {
                localStorage.setItem(name, ‘disable‘);
            } catch (ex) {
            }
        };
        img.src = ‘data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAsAAAABBxAREYiI/gcAAABWUDggGAAAADABAJ0BKgEAAQABABwlpAADcAD+/gbQAA==‘;
    }
}

  

webp实践的javascript检测方案

标签:blog   io   ar   java   sp   div   on   cti   log   

原文地址:http://www.cnblogs.com/dachie/p/4016128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!