Uncaught SyntaxError: "" string literal contains an unescaped line break?

作者站长头像
站长
· 阅读数 16

我自己写了个在线html,css,js工具:html结构部分

<div class="html">
<textarea id="html" name="" cols="30" rows="10">
</textarea>
</div>
<div class="css">
<textarea id="css" name="" cols="30" rows="10"></textarea>
</div>
<div class="css">
<textarea id="js" name="" cols="30" rows="10"></textarea>
</div>
<div class="button"><button id="button">显示效果</button></div>
<div class="iframe">
<iframe id="iframe" frameborder="0">
</iframe></div>

css部分

#html{width: 1000px;height: 200px;border:1px solid red;}
#css{width: 1000px;height: 200px;border:1px solid red;}
#js{width: 1000px;height: 200px;border:1px solid red;}
#iframe{width: 1000px;height: 800px;border:1px solid red;}

js部分

<script charset="utf-8" type="text/javascript">
var ele = document.getElementById("button");
ele.addEventListener("click", function(){
    var  obHtml = document.getElementById("html").value;
    var  obCss = document.getElementById("css").value;
    var  obJs = document.getElementById("js").value;
    var  obIframe = document.getElementById("iframe");
    myString = obHtml + '<style type="text/css">' +
               obCss +'</style>' + 
               '<script charset="utf-8" type="text/javascript">' +
               obJs + '</script>';
    console.log(mString);
    obIframe.srcdoc = myString;
})

console.log(mystring);用来测试的,可以不要。总是报错

Uncaught SyntaxError: '' literal not terminated before end of script第32行出错

    myString = obHtml + '<style type="text/css">' +
               obCss +'</style>' + 
               '<script charset="utf-8" type="text/javascript">' +
               obJs + '</script>';

哪里有错了?不要 + '<script charset="utf-8" type="text/javascript">' + obJs + '</script>'; 就可以,原因不知道。

回复
1个回答
avatar
test
2024-07-12

iframe里面的js不能直接拼接,script部分必须新生成,下面的代码测试通过。

var ele = document.getElementById("button");
ele.addEventListener("click", function(){
    var  obHtml = document.getElementById("html").value;
    var  obCss = document.getElementById("css").value;
    var  obJs = document.getElementById("js").value;
    var  obIframe = document.getElementById("iframe");
    mystring = obHtml + '<style type="text/css">' +  obCss +'</style>' ;
    obIframe.srcdoc = mystring;
    var script   = document.createElement("script");
    script.type  = "text/javascript";
    script.text  = obJs;
    obIframe.appendChild(script);    
})
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容