2016-07-01 14 views
0

としてJavascriptの文字列を解釈する:ブラウザは、私は私のソースHTMLで次のしているHTMLタグ

<head> 
    ... 
    <script>window.jQuery || document.write('<script src="/js/jquery.min.js"></script>');</script> 
    ... 
</head> 

しかし、それのように私のブラウザ(クローム)によって解釈なっている:私が試した

<head> 
    ... 
    <script>window.jQuery || document.write('<script src="/js/jquery.min.js"></script> 
</head> 
<body> 
    "');" 
    ... 

document.write文字列内のスラッシュをエスケープしますが、それは機能しませんでした。誰もブラウザがそれを終了スクリプトタグとして解釈するのを防ぐ方法を知っていますか?

答えて

4

</script>はalwasyそれはあなたがこのようにそれを分割する必要がある内部の文字列だ場合でも、終値スクリプトタグとして解釈されます

'</'+'script>'; 
2

あなたのスクリプトの中でいくつかの文字をエスケープする必要があります。

はこれを試してみてください:

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

私はバックスラッシュ\/文字をエスケープし、それは次のように終わる:あなたのdocument.write()文で\/。このセットアップの良い例えば

、ここではGitHub上のHTML5ボイラープレートプロジェクトを見てみてください:

https://github.com/h5bp/html5-boilerplate/blob/master/src/index.html#L26

は、この情報がお役に立てば幸いです。

+0

私はそれを試したと思っていましたが、私はジェイドを使用しているので、エスケープバックスラッシュから脱出しなければならないと思います – jhhayashi

関連する問題