Uncaught SyntaxError: "" string literal contains an unescaped line break?
我自己写了个在线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个回答

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);
})
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容