我在彈出窗口的iframe中有一個HTML表單,並希望將其提交到彈出窗口的打開窗口(window.parent.opener)。該窗體不存在於打開窗口中,但僅在彈出窗口的iframe中存在。最簡單的方法是什麼?將表單提交到特定窗口
我的圖形目標沒有幫助,因爲它們只允許指定_parent,並且打開的窗口沒有iframename。只要它不可見,動態地重新創建打開窗口中的iframe表單可能是一個選項。有沒有一個庫來動態創建一個給定序列化表單數據的表單?
(jQuery的解決方案優先)
我在彈出窗口的iframe中有一個HTML表單,並希望將其提交到彈出窗口的打開窗口(window.parent.opener)。該窗體不存在於打開窗口中,但僅在彈出窗口的iframe中存在。最簡單的方法是什麼?將表單提交到特定窗口
我的圖形目標沒有幫助,因爲它們只允許指定_parent,並且打開的窗口沒有iframename。只要它不可見,動態地重新創建打開窗口中的iframe表單可能是一個選項。有沒有一個庫來動態創建一個給定序列化表單數據的表單?
(jQuery的解決方案優先)
動態重新創建在其他窗口的形式竟然是沒有我想象的那樣糟糕。這段代碼應該這樣做:
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();
你能不能從序列化形式的所有數據,並通過window.parent.opener
它傳遞給家長嗎?
或者使用類似於window.parent.opener.location = "http://something.com?var1=test&var2=test"
之類的URL。
對於POST,嘗試dinamically設定目標:
document.whateverForm.target = window.parent.opener.window.name;
是的,但我不希望在父頁面中添加表單(或任何有關它的知識的JavaScript)。 使用window.location會導致HTTP GET,但這肯定應該由HTTP POST完成。 – 2014-10-07 09:11:18
檢查編輯的答案。它應該以編程方式設置目標。 – Romeo 2014-10-07 09:21:17
這是一個非常酷的想法:)不幸的是,我懷疑它會起作用,至少在所有瀏覽器上。在我的Chrome中,名稱是「」。 – 2014-10-07 09:45:22
您是否考慮向父頁面發送ajax請求以獲取表單值? – venkatKA 2014-10-07 09:00:37
彈出窗口(或彈出窗口中的iframe)應使打開窗口提交POST請求並顯示結果。 Ajax將有助於提交數據,但不會更改打開窗口的內容。 – 2014-10-07 09:18:20