Dies ist ein altes Thema, aber ich bin darauf gestoßen und war mit der Lösung insgesamt nicht zufrieden. Jemand hat in einem Kommentar oben erwähnt, dass der offizielle zepto-Test dazu führen wird, dass zepto auf FireFix 3.6 statt auf JQuery umsteigt, was ich nach Möglichkeit vermeiden möchte.
Also, mein Gedanke war... testen, ob es einige HTML5-Funktionen unterstützt UND wenn es nicht IE ist. Dies kann bedeuten, dass die größere jQuery zu mehr Browsern gehen wird, als es sollte, aber ich würde lieber "arbeiten" aufgeblähten Code zu einem schnellen Download von nichts. Wie auch immer, die isCanvasSupported()-Methode von Modernizer und die __proto__
Test, der von zepto empfohlen wurde, denke ich, dass dies eine gute Lösung sein könnte (ich hatte noch keine Gelegenheit, ihn tatsächlich zu testen):
var isHtml5AndNotIE = function() {
var elem = document.createElement('canvas');
return '__proto__' in {} && !!(elem.getContext && elem.getContext('2d'));
};
Dann verwenden Sie einfach diese Methode in document.write() wie in den obigen Beispielen oder wo immer Sie den Pfad zu jquery/zepto definieren.
Die einzigen beiden Browser-Versionen, die ich in einem schnellen Querverweis sehen konnte, die Folgendes unterstützen * IOS Safari 3.2 (4+ wird von Zepto unterstützt) * Android 2.1 (2.2+ wird von Zepto unterstützt)
http://zeptojs.com/#platforms
http://caniuse.com/#feat=canvas