我想向弹出窗口(非空白)提交表单。这工作正常,但由于某种原因我的父窗口被第二次打开。
var formelements = document.getElementById("exportform");
formelements.removeAttribute("action");
formelements.setAttribute("target","/path/exportwindow.html");
exportwindow = window.open("/path/exportwindow.html", "myexportwindow", "width=800,height=600,resizable=yes");
formelements.submit();
HTML:
<form id="exportform" action="/path/myfunction" method="post">
所以发生的情况是弹出窗口打开,并且在后台我的父窗口打开到一个新选项卡。谁能告诉我为什么 js 会这样?
最佳答案
window.open中的第二个参数是窗口名称,必须与target相同
var formelements = document.getElementById("exportform");
formelements.setAttribute("action","path/to/exportwindow.php");
formelements.setAttribute("target","bugsme");
exportwindow = window.open("", "bugsme", "width=800,height=600,resizable=yes");
formelements.submit();
这将打开一个弹出窗口,但您可能不应该删除操作参数,而应将其设置为接收表单数据的正确脚本
关于Javascript 表单提交到带有目标的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990695/