我需要在模态对话框中打开一个.aspx页面。这是我用来打开对话框的JS代码:
if (url) {
var fullPath = url + "/Validation.aspx";
}
else {
alert("Could not find the location of the merge dialog. Please contact your System admin and have them update the configuration entity.");
return;
}
var features = "unadorned:yes;scroll:yes;resizable:yes;status:yes;dialogHeight:480px;dialogWidth:480px;";
var args = {
selected: selectedIds,
page: pageIds,
fetchXml: xml,
entity: "xyz"
};
window.showModalDialog(fullPath, args, features);
在我的validation.aspx页面中,我需要能够获取JS参数,将它们分配给隐藏字段,然后重新发布,这样我就可以使用那些arg值服务器端。
这是我的.aspx页面中的JS代码:
window.onload = function(){
if (!window.dialogArguments)
return;
var args = window.dialogArguments;
...
}
我已经看到很多这样的例子在整个网络上都有效。 但是......在我的.aspx页面中,我的window.dialogArguments总是未定义的。是什么赋予了?有人有任何想法或解决方案吗?
答案 0 :(得分:3)
我的假设是ASPX对话框页面正在跨域打开。
这意味着您的父网页位于一个域名http://abc/page.html
,并且您的子对话页面位于另一个域中,如:http://def/dialog.html
。
如果是这种情况,似乎有限制访问dialogArguments和returnValue。例如,查看this previous answer上的评论。