主页面用window.showModalDialog的时候,如果直接打开其它系统的页面,这时候别人的页面在window.returnValue=1;这样返回值的时候,主页面是取不到返回值的,原因就是因为跨域了.
解决办法如下:
1,首先主页面testMain.jsp先打开一个中转页面,
<html>
<head>
</head>
<body>
<input type="button" value="test" onclick="test();"/>
</body>
</html>
<script type="text/javascript">
function test() {
var paramObj = new Object();
//弹出模式窗口,集成页面
var ret_Value = window.showModalDialog("testFrame.jsp",paramObj,"scroll:no;resizable:yes;Minimize:no;Maximize:yes;dialogHeight:700px;dialogWidth:1024px;");
alert("返回值---" + ret_Value);
}
</script>
2,中转页面testFrame.jsp中要有一个iframe,然后把其它系统要打开的页面(这里的例子就是http://192.168.1.120:8080/test.jsp)放在这个iframe中,这里用一个FORM来存放要提交的数据,代码如下:
<html>
<body>
<form id="page_interface_form" name="page_interface_form" method="post">
<input type="hidden" value="测试数据11111111" name="data" />
</form>
<iframe name="page_interface_frame" width="100%" height="100%" ></iframe>
</body>
</html>
<script type="text/javascript">
//嵌入集成页面
call_page_interface();
//在iframe中调用页面集成接口
function call_page_interface(){
document.getElementById("page_interface_form").action = "http://192.168.1.120:8080/test.jsp";
document.getElementById("page_interface_form").target = 'page_interface_frame';
document.getElementById("page_interface_form").submit();
}
</script>
分享到:
相关推荐
至此,我们成功地解决了`window.showModalDialog`跨域返回值的问题。 总结起来,解决`window.showModalDialog`跨域返回值的关键步骤是: 1. 使用`window.showModalDialog`打开一个包含`iframe`的页面,`iframe`加载...
在实际应用中,选择`showModalDialog()` 或 `window.open()` 主要取决于你的需求。如果你需要一个用户必须处理完才能继续操作的界面,`showModalDialog()` 可能更合适。但考虑到其局限性和可能的兼容性问题,`window...
- 当使用`window.showModalDialog()` 或 `window.showModelessDialog()` 打开的对话框关闭时,可以通过父窗口中的 `vReturnValue` 变量获取到返回值。 - 在对话框窗口中设置返回值,可以使用 `window.returnValue` ...
子窗体通常是由父窗体通过`window.open()`或`window.showModalDialog()`方法打开的新窗口,而父窗体则是创建子窗体的那个原始窗口。 在提供的代码示例中,主要涉及以下关键知识点: 1. `window.dialogArguments`:...
当你在对话框内执行操作并关闭它时,可以通过`returnValue`将数据返回到调用`showModalDialog`的页面。 然而,需要注意的是,`showModalDialog`在现代Web开发中逐渐被弃用,因为它不支持跨域,且存在一些浏览器兼容...
在`showModelessDialog`中,父页面可以传递参数给子页面,并通过返回值实现通信。然而,由于其兼容性问题(不被其他现代浏览器支持),现在已经被广泛弃用,开发者应转向更通用的解决方案。 接着是`window.open`,...
在IT行业中,`showModalDialog`是一个非常特殊的浏览器API,主要用于弹出模态对话框,它在网页应用中起到了展示信息、获取用户输入或者执行特定任务的作用。这篇名为"showModalDialog技术文章"的博客文章可能详细...
在Web开发领域,特别是早期的Internet Explorer浏览器版本中,`showModalDialog()` 和 `showModelessDialog()` 是两个非常实用的方法,用于在当前页面打开一个新的对话框。这两种对话框的主要区别在于是否具有模态...
此外,跨域安全策略也可能限制`window.opener`和`showModalDialog()`的使用,确保在同源策略允许的范围内操作,否则可能会引发安全问题。 总的来说,通过`window.opener`和`window.location.reload()`,我们可以...