动态地将Javascript写入新的HTML页面

时间:2012-11-05 17:55:19

标签: javascript html5

我在下面的代码中使用以下代码尝试通过单击按钮动态地将一些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)

2 个答案:

答案 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值并填入你的自定义值那。什么会更可靠。

Check out the w3c about $_GET