2012-11-05 64 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