如何将子页面值发送到父页面?

时间:2017-04-12 10:30:08

标签: javascript jquery html

我有两页父页面和子页面,我必须将选定的值从子页面添加到父页面。以下是我的父页面代码。

 function lookup(){
        window.open('https://c.ap4.visual.force.com/apex/accountpopup','popuppage','width=400,toolbar=1,resizable=1,scrollbars=yes,height=400,top=100,left=100');

}

 function updateValue(param)
{
    document.getElementById("name").value = param;
}

以下是我的孩子/弹出页面代码:

 function callaccount(param){
    var parent1=window.dialogAruments;
    var v=param;
     parent1.updateValue(param);
     window.close();
    }

弹出窗口没有关闭并向父页面发送值

3 个答案:

答案 0 :(得分:1)

您可以使用window.opener。请注意,窗口中还有其他功能,例如window.openwindow.selfwindow.topwindow.parent。 但在你的情况下,window.opener更相关,因为它引用了调用window.open(...)的窗口 所以,你的功能应该是:

function callaccount(param){
    var parent1=window.dialogAruments;
    var v=param;
     window.opener.updateValue(param);
     window.close();
    }

谢谢!

答案 1 :(得分:1)

使用jQuery本地存储

您的代码应该与您要传递值的第1页类似:

if (typeof(Storage) !== "undefined") {
    // Store
    localStorage.setItem("variable", "value");
}
else {
    console.log("Sorry, your browser does not support Web Storage...");
}

您需要该数据的第2页:

if (typeof(Storage) !== "undefined") {
    // Retrieve
    console.log(localStorage.getItem("variable"));
}
else {
    console.log("Sorry, your browser does not support Web Storage...");
}

查看console中的输出,让我知道它会对您有所帮助!

答案 2 :(得分:0)

使用window.opener

您需要在子页面中使用以下window.opener

childWindow.opener.document.getElementById('<id from parent form>').value = '123';

opener属性返回对创建窗口的窗口的引用。

使用window.open()方法打开窗口时,可以使用子窗口中的此属性返回父窗口的详细信息。