SyntaxError:关闭时意外的EOF

时间:2016-10-24 16:03:29

标签: javascript jquery eof

尝试动态添加此代码

<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 个答案:

答案 0 :(得分:5)

您无法在脚本中嵌入</script>的文字。即使那个&#34;标签&#34;在字符串内部,它仍然终止浏览器的脚本块。你必须打破它:

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

请记住 - 浏览器首先破解页面/代码的原始文本,并且直接了解Javascript是什么。它只能理解HTML,这意味着脚本块在块内的</script>的第一个实例处终止,无论块中的代码如何/在哪里出现。