JavaScript - 表单提交到window.open弹出窗口不工作IE / FF

时间:2013-09-19 09:21:13

标签: javascript html internet-explorer firefox

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上它只留下空白窗口。

有没有解决这个问题?

2 个答案:

答案 0 :(得分:1)

我实际上找到了解决方案 - 如果有人需要它。需要将表单添加到文档以使其工作。 document.documentElement.appendChild(形式);它解决了IE / FF上的问题

答案 1 :(得分: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();

              }