2016-10-24 6 views
0

Tryn hinzufügen dynamisch diesen CodeSyntaxerror: Unerwarteter EOF beim Schließen</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); 
}) 

Browser gibt mir: Syntaxerror: unerwartetes EOF

Hier ist das Problem - schließen Script-Tag

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

Irgendwelche Hilfe? Danke

+1

'height = '0' 'width =' 0''' falsche Anführungszeichen? Korrigiere alle falschen Anführungszeichen in den Strings! – sabithpocker

+4

Nebenbei, wenn JavaScript deaktiviert ist, wie genau erwarten Sie das '

+0

Warum können Sie den JS-Code nicht einfach ausführen? Wenn Sie es dynamisch einem separaten Skript-Tag hinzufügen, wird es unnötig verworren. – JJJ

Antwort

5

Sie können Text mit </script> in einem Skript nicht einbetten. Selbst wenn sich dieses "tag" innerhalb einer Zeichenfolge befindet, wird der Skriptblock für den Browser immer noch beendet. Sie werden es brechen müssen:

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

Denken Sie daran - der Browser im Rohtext der Seite/code ersten Riss bekommt, und es nicht direkt verstehen, was Javascript ist. Es versteht nur HTML, was bedeutet, dass der Skriptblock an der ersten Instanz von </script> innerhalb des Blocks endet, unabhängig davon, wie/wo diese schließenden Tags innerhalb des Codes innerhalb des Blocks erscheinen.

+0

Danke. Mein schlecht!) – aleXela

+0

sicher sein, diese Antwort als richtig zu markieren, wenn es Ihnen geholfen hat @aleXela – Andrew

+0

Ich tat))) danke – aleXela

Verwandte Themen