Это старая тема, но она пришла мне в голову, и в целом я не был доволен решением. Кто-то в комментарии выше упомянул, что официальный тест zepto приведет к тому, что zepto перейдет на FireFix 3.6 вместо JQuery, чего я бы предпочел избежать, если это вообще возможно.
Итак, я подумал... проверить, поддерживает ли он какую-либо функцию HTML5 И, если это не IE. Это может означать, что более крупный jQuery будет использоваться в большем количестве браузеров, чем должен, но я бы предпочел «работающий» раздутый код быстрой загрузке ничего. Итак, в любом случае, взяв метод isCanvasSupported() из Modernizer и тест __proto__
, рекомендованный zepto, я думаю, что это может быть хорошим решением (еще не было возможности протестировать):
var isHtml5AndNotIE = function() {
var elem = document.createElement('canvas');
return '__proto__' in {} && !!(elem.getContext && elem.getContext('2d'));
};
Затем просто используйте этот метод в document.write(), как в приведенных выше примерах или везде, где вы определяете путь к jquery/zepto.
Единственные две версии браузера, которые я мог видеть в быстрой перекрестной ссылке, которые поддерживают холст, но не поддерживаются zepto: * IOS Safari 3.2 (4+ поддерживается Zepto) * Android 2.1 (2.2+ поддерживается Zepto)
http://zeptojs.com/#platforms
http://caniuse.com/#feat=canvas
person
Kevin Nelson
schedule
12.08.2013
__proto__
:) - person alex   schedule 29.05.2012