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 он просто оставляет пустое окно.
Есть ли какое-то исправление?
Я действительно нашел решение - если кому-то это нужно. Требуется добавить форму в документ, чтобы она работала. document.documentElement.appendChild (форма); Он исправил проблему с IE/FF
Для будущих читателей: проверьте эту функцию в 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();
}