2016-10-24 15 views
0

Trynで予期しないEOF動的にこのコードを追加するにSyntaxError:クローズ</script>

<script> 
$(document).ready(function(){ 
    var tagcodehead = "function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','{{ code }}');"; 

    var tagcodebody = "<noscript><iframe src='https://www.googletagmanager.com/ns.html?id=GTM-MN88H8'height='0'' width='0'' style='display:none;visibility:hidden'></iframe></noscript>"; 

    $(head).add("<script>" + tagcodehead + "</script>"); 
    $(head).prepend(tagcodebody); 
}) 

ブラウザは私を与える:でSyntaxError:予期しないEOF

ここでは問題である - 終了スクリプトタグ

$(head).add("<script>" + tagcodehead + "</script>"); 

助けが必要ですか? ありがとう

+1

'height = '0' 'width =' 0 ''は間違った引用符ですか?文字列のすべての間違った引用符を修正してください! – sabithpocker

+4

JavaScriptを無効にすると、 '

+0

JSコードを実行できないのはなぜですか?別のスクリプトタグに動的に追加するだけで、不必要に畳み込まれてしまいます。 – JJJ

答えて

5

</script>でテキストを埋め込むことはできません。その "タグ"が文字列の中にあっても、ブラウザのスクリプトブロックは終了します。あなたはそれを分割する必要があります:

$(head).add("<script>" + tagcodehead + "</scr" + "ipt>"); 

覚えておいてください - ブラウザがページ/コードの生のテキストで最初の亀裂を取得し、それが直接Javascriptが何であるかを理解していません。 HTMLを理解するだけです。つまり、スクリプトブロックはブロック内のコード内にどのように/終了タグが表示されるのかにかかわらず、ブロック内の</script>の最初のインスタンスで終了します。

+0

ありがとうございました。私の悪い!) – aleXela

+0

あなたが@aleXela – Andrew

+0

でした))))))ありがとうございました場合は、この回答を正しいとマークするようにしてください – aleXela

関連する問題