如何将表格提交到新窗口?

use*_*834 5 javascript jquery

我想使用JavaScript动态插入表单,然后提交它并在新窗口中打开目标.

这是我的代码:

            var form = document.createElement("form");
            form.setAttribute("method", "post");
            form.setAttribute("action", xxx);
            form.setAttribute("onsubmit", "window.open('about:blank','Popup_Window','scrollbars=yes,width=550,height=520');");
            form.setAttribute("target", "Popup_Window");

            document.body.appendChild(form);
            form.submit();
Run Code Online (Sandbox Code Playgroud)

此代码有效 - 它动态插入表单并成功提交表单.但是,表单在新选项卡中打开,而我希望它在新窗口中打开.有什么想法吗?对于如何解决这个问题,有任何的建议吗?我也对jQuery持开放态度.

谢谢!

编辑:我不确定为什么人们将此标记为重复.是的,它与其他问题在同一主题上,但答案没有关系 - 声称的重复问题有一个新的行,搞乱了代码,我没有,但我的代码仍然无法正常工作......

Dan*_*ger 8

我已将此标记为重复,因为我认为您的问题是关于如何将表单发送到弹出窗口。以下是不使用onsubmit事件的方法:

var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", xxx);

function submitToPopup(f) {
    var w = window.open('', 'form-target', 'width=600, height=400, any-other-option, ...');
    f.target = 'form-target';
    f.submit();
};

document.body.appendChild(form);

submitToPopup(form);
Run Code Online (Sandbox Code Playgroud)

因此,不是使用onsubmit事件从那里创建弹出窗口,而是在发送表单之前先创建它,然后将表单发送给它。


Muh*_*mer 5

你可以这样做[链接]

  1. 打开一个新窗口
  2. 在其中插入表格
  3. 让它提交
  4. 这将导航到 url

    var form = document.createElement("form");
    
    form.setAttribute("method", "post");
    form.setAttribute("action", "http://www.yahoo.com");
    
    
    function popitup() {
        newwindow = window.open('', 'name', 'width=800,height=600');
        if (window.focus) {
            newwindow.focus()
        }
        newwindow.document.body.appendChild(form);
        newwindow.document.forms[0].submit();
        return false;
    }
    
    popitup();
    
    Run Code Online (Sandbox Code Playgroud)