2012-11-05 40 views
0

我有下面的代码,我正在使用试图动态地写一些JavaScript到一个新的HTML页面点击一个按钮。动态写入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) 

回答

1

你缺少的最后一行关闭>

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(); 
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值,然后填写您的自定义值。什么会更可靠。

Check out the w3c about $_GET