2011-09-16 7 views
3

ここでは、ローカルサーバへのフォールバックを使用してGoogleからJQueryライブラリを読み込むための小さなスクリプトをstackoverflowで見つけました。だから私は私のサイトでこれを実装します。GoogleからJQuery-libをローカルサーバに転送する

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js"></script> 
<script>window.jQuery || document.write(&apos;<script src="js/jquery-1.6.4.min.js">\x3C/script>&apos;)</script> 

しかし、放火犯の実装後に私に構文エラーを示しています。

syntax error 
window.jQuery || document.write(&apos;...uery-1.6.4.min.js">\x3C/script>&apos;) 

誰かが回避策または修正を知っていますか?

種類よろしく

答えて

4

この1つはそれのためにエスケープ正しいです:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js" /></script>  
<script>window.jQuery || document.write('<script src=\"js/jquery-1.6.4.min.js\"\>\</script\>')</script> 

Working Demo.

1

これを試してみてください: window.jQuery || document.write( '');

エンティティshenanigansの必要はありません。

EDIT:興味深い。それは、スクリプトブロックの中にそれをダンプして、JavaScriptのパーサが転倒しています。 (それはローカルコピーのダウンロードを強制するので、私は故意にCDNのURLをしくじっ)の代わりにこれを試してみてください:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.4/jquery.js"></script> 
<script>window.jQuery || function(){ var script=document.createElement('script');script.src='js/jquery.js'; document.getElementsByTagName('head')[0].appendChild(script); }();</script> 
+0

この1件の放火犯は「終端されていない文字列リテラル window.jQuery ||のdocument.write( '<スクリプト私に語った後、 src = "js/jquery-1.6.4.min.js"> " – blackrafi

0

このコードは、私のために働いています。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    !window.jQuery && document.write('<script src="<?php echo $this->webroot; ?>js/jquery.min.js" type="text/javascript"><\/script>'); 
</script> 
関連する問題