window.showModalDialog跨域访问获取返回值

主页面用window.showModalDialog的时候,如果直接打开其它系统的页面,这时候别人的页面在window.returnValue=1;这样返回值的时候,主

页面是取不到返回值的,原因就是因为跨域了.
解决办法如下:
1,首先主页面testMain.jsp先打开一个中转页面,
Java代码    
<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来存放要提交的数据,代码如下:
Java代码    
<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>  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值