我在弹出窗口的iframe中有一个HTML表单,并希望将其提交到弹出窗口的打开窗口(window.parent.opener)。该窗体不存在于打开窗口中,但仅存在于弹出窗口的iframe中。最简单的方法是什么?
我认为表单目标没有帮助,因为它们只允许指定_parent,而打开窗口没有iframename。只要它不可见,就可以在打开窗口中动态地重新创建iframe的表单。是否有一个库可以动态创建给定序列化表单数据的表单?
(首选jQuery解决方案)
答案 0 :(得分:1)
您无法序列化表单中的所有数据并通过window.parent.opener
将其传递给父级吗?
或者使用类似window.parent.opener.location = "http://something.com?var1=test&var2=test"
的网址。
对于POST,请尝试使用dinamically设置目标:
document.whateverForm.target = window.parent.opener.window.name;
答案 1 :(得分:1)
在另一个窗口中动态地重新创建表单,结果并没有我想象的那么糟糕。这段代码应该这样做:
var originalForm = $('#myForm');
var values = originalForm.serializeArray();
var newForm = $('<form>').attr({method: 'post', action: originalForm.prop('action')});
$.each(values, function(i, val) {
newForm.append($('<input>').attr({type: 'hidden'}).attr(val));
});
$('body', window.parent.opener.document).append(newForm);
newForm.submit();