我在HTML表单上有一个Button(让我们称之为Form_A),点击它后会打开一个新窗口(我们称之为Form_B)。
当用户在Form_B表单中填写一些信息并点击提交(或只是一个按钮)时,我需要将一些已处理的信息发送回“Form_A”并关闭“Form_B”。
我怎样才能完成它?
答案 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;
}
顺便说一句,当我们想要模拟私有变量时,我们通常会使用_
,而它们并不是真正的私有变量。