0

我正在打开一个空白窗口并在新窗口上编写一个 javascript 来提交表单。

当我执行一行 "newWindow.document.write(newwdtxt2);\n\"(倒数第三行) 我得到一个异常并且最后两行没有执行。下面提到的是我的代码

function openWindow(url,name,options) {
       var aToken = ""; 
       aToken ="2121225434349231132674638921:SUPER.SUPER"; 
       if(aToken=="") { 
       aToken=document.formEMS.AUTHTOKEN.value; }
       var newWindow = window.open("", name); 
       if (!newWindow) return false; 
       var newwdtxt = ""; 
       newwdtxt += "<html><head></head>\n"; 
       newwdtxt += "<body>\n"; 
       newwdtxt += "<form name=\"eventForm\" method=\"post\" action="+url+ ">\n"; 
       newwdtxt += "<input type=\"hidden\" name=\"AUTHTOKEN\"";
       newwdtxt += "value= '";newwdtxt += aToken+"'/>\n"; 
       newwdtxt += "</form>\n"; 
       newwdtxt += "<scr"; 
       var newwdtxt1 = ""; 
       newwdtxt1 += "ipt type=\"text/javascript\" language=\"javascript\">\n"; 
       newwdtxt1 += "window.onLoad=document.eventForm.submit();\n"; 
       newwdtxt1 += "</scr"; 
       var newwdtxt2 = ""; 
       newwdtxt2 += "ipt>\n"; 
       newwdtxt2 += "</body></html>\n"; 
       newWindow.document.write(newwdtxt);
       alert(newwdtxt); 
       newWindow.document.write(newwdtxt1);
       alert(newwdtxt1); 
       alert(newwdtxt2); 
       newWindow.document.write(newwdtxt2);
       alert('wrote newwdtxt2'); 
       return newWindow; } 

请帮我弄清楚是什么问题?

4

4 回答 4

2

你应该看看这个: http: //getfirebug.com/

于 2009-10-15T13:37:31.640 回答
1

这将产生语法异常。试试这个:

   newWindow.document.write(newwdtxt+newwdtxt1+newwdtxt2);
于 2009-10-15T14:37:57.317 回答
1
  1. Javascript 支持多行字符串:
    var doc = '<html>\
    <头部>\
    </head>\
    <正文>\
    </正文>\
    </html>';
  1. 写完整的标签(这是你问题的根源): document.write('</scr' + 'ipt>'); 工作正常
  2. 使用 firebug 控制台更轻松地进行 javascript 调试
于 2009-10-15T14:22:24.743 回答
0

我相信当您执行 document.write 时,浏览器会将您写入的 html 解析为 DOM 节点。在您的代码中,您正在编写不完整的 HTML,因此在解析它时会出错。尝试将“ipt>”放在“newwdtxt1”的末尾,而不是现在的位置。

于 2009-10-15T13:39:27.347 回答