我有两页父页面和子页面,我必须将选定的值从子页面添加到父页面。以下是我的父页面代码。
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();
}
弹出窗口没有关闭并向父页面发送值
答案 0 :(得分:1)
您可以使用window.opener
。请注意,窗口中还有其他功能,例如window.open
,window.self
,window.top
和window.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。
childWindow.opener.document.getElementById('<id from parent form>').value = '123';
opener属性返回对创建窗口的窗口的引用。
使用window.open()方法打开窗口时,可以使用子窗口中的此属性返回父窗口的详细信息。