首先解释一下returnValue
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个模态窗口时,用于返回窗口的值。
使用js做了一个通用选人控件
父页面为短信发送页面,点击选人按钮进行选人,选人页面为另一个域名下的页面
父页面:smscenter.test.com
选人页面:cus.test.com
js中使用如下代码获取选人页面的值
var returnValue = window.showModalDialog(url, condition, params);
发现选人之后returnValue为undefined。
经研究解决方案如下,设置域
选人页面和父页面都增加如下代码
$(document).ready(function() {
document.domain = "test.com";
});
以上的处理解决了由于跨域导致IE下returnValue为undefined的情况。
对于chorme浏览器,需要额外增加如下代码
选人页面:
将 window.returnValue = selectedUsers.Values();此行代码
替换为如下代码:
if (window.opener != undefined) {
window.opener.returnValue = selectedUsers.Values();
}
else if(window.parent != undefined)
{
window.parent.returnValue = selectedUsers.Values();
}
else {
window.returnValue = selectedUsers.Values();
}
父页面:
var returnValue = window.showModalDialog(url, condition, params);
在获取returnValue值这行代码下面追加如下代码
if (returnValue == undefined) {returnValue = window.returnValue;
}
以上,问题解决