Это старая тема, но она подошла ко мне, и я не был доволен решением в целом. Кто-то в комментарии выше упомянул, что официальный тест 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.
Единственные две версии браузера, которые я мог видеть в краткой перекрестной ссылке, которые поддерживают canvas, но не поддерживаются zepto:
* IOS Safari 3.2 (4+ поддерживается Zepto)
* Android 2.1 (2.2+ поддерживается Zepto)
http://zeptojs.com/#platforms
http://caniuse.com/#feat=canvas