ASP.NET跨域模式窗口(window.showModalDialog) - 参数值始终为“未定义”

时间:2010-08-27 20:29:32

标签: javascript asp.net cross-domain showmodaldialog

我有两个网页,父网页.aspx和子网页.html。 在父页面上,我有JavaScript函数,可以通过window.showModalDialog调用子页面作为模态窗口。

function viewCourseModal(url) {

var sPars = SomeParameters();
var returnedValue = window.showModalDialog(url, "", sPars);
document.getElementById("modalReadyForTest").value = returnedValue;  

return returnedValue;

}

在子页面上,我有以下内容:

<script LANGUAGE="JavaScript">

function closewindow() {
    window.returnValue = "someValue";
    window.close();
}

<input id="Button1" type="button" value="Ready For Test" onclick="closewindow()" />

因此,当我启动父窗口并调用子模态窗口时,单击按钮Button1后,带有“someValue”的参数将返回到父窗口(到modalReadyForTest控件)。

当我在同一个域上同时拥有父页面和子页面时,它可以正常工作。当我将它们放在不同的域上时,参数的值不会被传递,而是始终“未定义”。

有没有办法让不同域的模态窗口将参数值返回到父页面?那些跨域问题可以解决吗?还是我应该尝试完全不同的方法?

我非常感谢任何帮助。

谢谢,Anvar

1 个答案:

答案 0 :(得分:1)

父页面:

<script>
function test(str) {
    alert(str);
}
</script>

儿童页面:

<input id="Button1" type="button" value="Ready For Test" onclick="opener.test('my value here')" />