应用场景:在A页面点击一个按钮弹出另一个页面B,需要把A页面的值传到B页面以供初始化B页面的数据,同时也要将B页面(通过保存按钮)的最后结果传到A页面。
//B页面的保存按钮函数
function getUsers(){
var result=new Array(2);
result[0]=tree.getAllCheckedByItemType('<%=XmlCanstants.STAFF_ITEM_TYPE%>');
result[1]=tree.getAllCheckedTextByItemType('<%=XmlCanstants.STAFF_ITEM_TYPE%>');
window.returnValue =result;//将要传递的值赋值给window.returnValue变量
closeWindow();
}
//注意:此处有2个重要参数,一:window.showModalDialog()的第2个参数valueArray 为传到URLStr页面的参数,这个值将在下面的initChecked()函数中的window.dialogArguments取得,而windowReturnValue为窗口页面返回的值,即对应上面的getUsers()函数对应的window.returnValue
//A页面的按钮函数
function openWindow(URLStr,selectObj)//弹出窗口
{
var selectObj = document.getElementById(selectObj);
var len = selectObj.options.length;
var valueArray = new Array(len);
for(var i=0;i<len;i++){
valueArray[i] = selectObj.options[i].value;
}
var windowReturnValue = window.showModalDialog(URLStr,valueArray ,'dialogHeight:480px;dialogWidth:220px;status:0;help:0;edge:sunken;scroll:1;');
if(windowReturnValue!=null&&windowReturnValue.length >0){
var userIds = windowReturnValue[0].split(",");
var userNames = windowReturnValue[1].split(",");
selectObj.length=0;//删除全部option
for(var i=0;i<userIds.length;i++){
creatOption(selectObj,userNames[i],userIds[i]);
}
}
}
function creatOption(select,text,value){
var option = document.createElement("option");
option.text=text;
option.value=value;
select.add(option);
}
//B页面从A页面获得传值,做初始化
function initChecked(){
var winobj =window.dialogArguments;
if(winobj!=""){
for(var j=0;j<winobj.length;j++){
tree.setCheck(winobj[j],true);
}
}
}