JavaScript - Форма отправки всплывающего окна window.open не работает IE / FF

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 он просто оставляет пустое окно.

Есть ли какое-то исправление?

Теги:
internet-explorer
firefox

2 ответа

1
Лучший ответ

Я действительно нашел решение - если кому-то это нужно. Требуется добавить форму в документ, чтобы она работала. document.documentElement.appendChild (форма); Он исправил проблему с IE/FF

  • 0
    Вы можете поставить полный код? У меня есть похожая проблема здесь [ stackoverflow.com/questions/30937329/… но я не могу найти, как применить ваше исправление
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();

              }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню