Ich habe Seiten gesehen, die anweisen oder fragen, wie man von Zepto auf jQuery zurückgreift (speziell für IE), wie here on SO und hier auf Zepto.js official page.
Ich habe auch Beispiele zu Fallback von Google-Hosted jQuery zu einer lokalen Site jQuery gesehen, wie in Modernizr.load doc page.Wie man von Zepto, zu Google CDN jQuery, zu lokalem jQuery fallback?
Meine Frage ist, wie lege ich die zwei Dinge zusammen? Möglicherweise auch ohne Verwendung von Modernizr.load, nur unter Verwendung der richtigen <script>
Blöcke?
Hier ist, was ich gefunden habe, aber es scheint, dass IE nie die von Google gehostete Version findet. Außerdem bin ich mir nicht sicher, ob die Zepto = jQuery
Zuweisung richtig funktioniert.
<script>
document.write('<script src=' +
('__proto__' in {} ?
'js/vendor/zepto.min' :
'https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min') +
'.js><\/script>');
</script>
<script>
if (window.jQuery) {
window.Zepto = window.jQuery; /* let jQuery alias Zepto */
}
else
{ /* here jQuery could be rightly undefined because Zepto is loaded,
so this could be wrong. */
document.write('<script src=' +
'js/vendor/jquery-1.8.0.min' +
'.js><\/script>');
}
</script>
<script>
if (window.jQuery) {
window.Zepto = window.jQuery; /* let jQuery alias Zepto */
}
else
{
/* same problem as before */
console.error('Zepto nor jQuery available!');
}
</script>
Gibt es einen besseren Weg?
TAbearbeiten
Nach @Ashfame Antwort, ist es das, was ich verwendet habe:
<!-- Load local Zepto.js or (as a fallback) jQuery from Google CDN or (as a fallback) local jQuery -->
<script>
document.write('<script src="' + ('__proto__' in {} ?
'js/vendor/zepto' :
'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery') +
'.min.js"><\/script>')
</script>
<script>
window.Zepto || window.jQuery || document.write('<script src="js/vendor/jquery-1.8.0.min.js"><\/script>');
</script>
ich nicht die protokoll weniger/Schema-weniger-URL von Google CDN als für verwenden könnte Irgendein Grund hat es auf meinem lokalen IE9 nicht funktioniert (es wartet viel, dann fällt immer wieder auf local).
Ich habe keine Aliasing Zepto
mit jQuery
: nur $
in JS-Code verwendet.
Ich habe anscheinend kein Problem im Zusammenhang mit jQuery loading out of order w.r.t. abhängiger Code.
Ich habe auch versucht mit '//ajax.googleapis.com/...', das ist ohne Protokoll Präfix – superjos
Versucht auch mit [dieses Snippet] (https://gist.github.com/3325940) wahrscheinlich von Benutzer @ Sébastien Grosjean - ZenCocoon: Es schien gut zu funktionieren, aber dann wollte ich weder das Cloudflare CDN, noch irgendein anderes Zepto CDN verwenden. – superjos
Auch versucht mit 'Modernizr.load', aber irgendwie schien es ein bisschen zu viel für den Zweck. Ich könnte mich natürlich irren. – superjos