私は、ZeptoからjQuery(特にIEの場合)へのフォールバックを指示するページ、つまりhere on SOとここにあるZepto.js official pageというページを見ました。
Modernizr.load doc pageのように、GoogleがホストするjQueryからローカルサイトのjQueryにフォールバックする方法の例も見てきました。Zepto、Google CDN jQuery、ローカルjQueryへのフォールバック方法
私の質問は、どうやって2つのものをまとめるのですか?おそらくModernizr.loadを使用せずに、ちょうど適切な<script>
ブロックを使用していますか?
これは私が思いついたものですが、IEではGoogleのホストされたバージョンが見つからないようです。また、Zepto = jQuery
割り当てが正しく動作するかどうかはわかりません。
<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>
良い方法はありますか? @Ashfame答えた後、TA
編集
、これは私が使用したものです:
私は用としてGoogle CDNのプロトコルレス/スキームレスのURLを使用することができませんでした<!-- 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>
何らかの理由で私のローカルIE9で動作しませんでした(それはたくさん待ってから、常にローカルに落ちます)。
もう一度エイリアスしませんでしたZepto
とjQuery
:ちょうど$
をJSコードで使用しました。
jQueryの順序が間違っているw.r.t.に関連する問題はありません。依存コード。この技術を試すの便宜上
また、私は '//ajax.googleapis.com/...'を試しました。これはプロトコルプレフィックスなしです – superjos
おそらく[このスニペット](https://gist.github.com/3325940)で試してみました@SébastienGrosjean - ZenCocoon:うまくいくように見えましたが、Cloudflare CDNや他のZepto CDNを使用したくなかったのです。 – superjos
また、 'Modernizr.load'で試してみましたが、なんとなくそれはあまりにも多すぎるようでした。もちろん私は間違っているかもしれない。 – superjos