我在下面的代码中使用以下代码尝试通过单击按钮动态地将一些javascript动态写入新的html页面。
我在尝试这样做时遇到错误我得到“未终止的字符串constamnt” 从理论上讲,这应该有效:
var html = '<!DOCTYPE html>\n'
html += '<html>\n'
html += '<head>\n'
html += '<script type="text/javascript">\n'
html += 'function testme() {\n'
html += 'alert("the test worked!")\n'
html += '}\n'
html += '</script>\n'
html += '</head>\n'
html += '<body>\n'
html += '</body>\n'
html += '</html\n'
window.open('','').document.write(html)
答案 0 :(得分:1)
您错过了结束&gt;在最后一行
html += '</html\n' <-- Missing a greater than
应该是
html += '</html>\n'
如果代码是内联的而不是外部脚本,则需要分解结束脚本标记。
html += '</scr' + + 'ipt>\n';
另外,使用分号。
现在window.open,document.write行看起来很奇怪。大多数开发人员会把它写成
var winPop = window.open('','');
winPop.document.open();
winPop.document.write(html);
winPop.document.close();
答案 1 :(得分:0)
只是提示您可以使用多行而不是在每行上添加html +=
只需在行尾添加反斜杠,这样:
html = '<html>\n \
<head>\n \
<script type="text/javascript">\n \
function testme() {\n \
alert("the test worked!")\n \
}\n \
</script>\n \
</head>\n \
<body>\n \
</body>\n \
</html>\n ';
但是,您的代码中存在一些漏洞,您忘记了>
</html>
就像 epascarello 所说的那样打破了剧本标签。
但是你可能想看一下你是否要用弹出窗口打开一个不同的html文档,甚至是php文件,从那以后你可以获取$_GET
值并填入你的自定义值那。什么会更可靠。