如何将数据从新页面提交到旧页面

时间:2014-02-08 14:42:46

标签: javascript jquery html

我在HTML表单上有一个Button(让我们称之为Form_A),点击它后会打开一个新窗口(我们称之为Form_B)。

当用户在Form_B表单中填写一些信息并点击提交(或只是一个按钮)时,我需要将一些已处理的信息发送回“Form_A”并关闭“Form_B”。

我怎样才能完成它?

2 个答案:

答案 0 :(得分:0)

最好用一个例子来说明。在Form_A的代码中:

<div id="target"></div> <button onclick="window.open('form_b.html'); return false">Open Form B</button>

function receive_data (value)
{
    $("#target").text(value);
}

在Form_B的代码中:

<input type="button" onclick="window.opener.receive_data('hello'); window.close();">

答案 1 :(得分:0)

您可以使用localStorage执行此操作,例如:

<!--FormB-->
<input type="submit" onclick="processInfo();" />

并在您的javascript代码中:

function processInfo(){
    //process your information then
    //let's day you have 2 variables as a result of your process
    var info1 = "My Information 1";
    var info2 = "My Information 2";
    localStorage.setItem("info1", info1);
    localStorage.setItem("info2", info2);
}

然后在下一页的代码中随时获取变量:

    function getInfo1(){
        return localStorage.getItem("info1");
    }

    function getInfo2(){
        return localStorage.getItem("info2");
    }

而古代浏览器的另一个解决方案是使用window.opener,您可以在关闭函数中使用它,如下所示:

<!--FormB-->
<input type="button" onclick="closeWindow();" />

javascript代码:

function closeWindow(){
    //process your information then
    //let's day you have 2 variables as a result of your process
    var info1 = "My Information 1";
    var info2 = "My Information 2";

    window.opener._info1 = info1;
    window.opener._info2 = info2;

    window.close();
}

然后你可以在主页面中获取它们:

    function getInfo1(){
        return window._info1;
    }

    function getInfo2(){
        return window._info2;
    }
顺便说一句,当我们想要模拟私有变量时,我们通常会使用_,而它们并不是真正的私有变量。