0
var form = document.createElement("form");
    form.setAttribute("method", "post");
    form.setAttribute("target" , "previewWindow")
    form.setAttribute("action", "partner_api/preview.php");

    var pidField = document.createElement("input");
    pidField.setAttribute("type", "hidden");
    pidField.setAttribute("name", "pid");
    pidField.setAttribute("value", "<?php echo $partnerID; ?>");
    form.appendChild(pidField);

    var bidField = document.createElement("input");
    bidField.setAttribute("type", "hidden");
    bidField.setAttribute("name", "bid");
    bidField.setAttribute("value", boxID);
    form.appendChild(bidField);

    window.open('', 'previewWindow', 'width=235,height=500,left=100,top=100');
    form.submit();

你好,

我对上面的代码有疑问——它在 Chrome 上运行良好,但在 Firefox 和 IE 上不行。应该做的是将创建的表单提交到新的弹出窗口,但在 FF/IE 上它只是留下空白窗口。

有什么解决办法吗?

4

2 回答 2

1

我实际上找到了解决方案 - 如果有人需要它。需要在文档中添加表单才能使其工作。document.documentElement.appendChild(form); 它修复了 IE/FF 上的问题

于 2013-09-23T10:02:18.627 回答
0

对于未来的读者:在 JS 中检查此功能以提交来自并打开一个新选项卡。

             function postData() {

                var ElementValue = document.getElementById('Id of element').value;

                var form = document.getElementById("formName");
                form.setAttribute("method", "post");
                form.setAttribute("action", "Your Url");
                form.setAttribute("target", "_blank");

                var NewElement = document.createElement("input");
                hiddenFieldSerialNo.setAttribute("input", "hidden");
                hiddenFieldSerialNo.setAttribute("name", "ElementName");
                hiddenFieldSerialNo.setAttribute("value", ElementValue);

                form.appendChild(NewElement);
                document.documentElement.appendChild(form);
                form.submit();

              }
于 2017-05-12T06:45:44.993 回答