0

皆さん、

簡単な質問です。誰かがこの構文が適切かどうかを確認できますか? これに関しては、firefox 1.7.3 と ie8 でエラーが発生しており、私の人生ではそれを取得できません。

<script>window.jQuery || document.write('<script src="/js/jquery-1.7.1.min.js"><\/script>')</script>
4

3 に答える 3

3

for starters でエスケープする必要はありません (/有効なエスケープ シーケンスとして認識されないため、失敗しています)。document.write\\/

ただし、それを削除すると</script>、XML パーサーが失敗する可能性があります。(<script>...</script>はパーサーが探しているものです。それが (文字列と見なされる) 内にあるかどうかは気にしません) したがって、連結が導入されます: </scr'+'ipt>.

全体として、次のものがあります。

<script>window.jQuery || document.write('<script src="/js/jquery-1.7.1.min.js"></scr'+'ipt>');</script>
于 2013-01-11T19:13:55.357 に答える
2

パーサーが最初</script>に遭遇すると、スクリプトタグを終了します。したがって、この修正は機能するはずです。

<script>
window.jQuery || document.write('<script src="/js/jquery-1.7.1.min.js"></sc'+'ript>');
</script>
于 2013-01-11T19:10:49.050 に答える
1

動的スクリプトの読み込みについて、別のアプローチをお勧めします。例えば:

var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'helper.js';
//append script somewhere on the dom
于 2013-01-11T19:15:42.583 に答える