主頁面用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> javascript
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>html
親測可用java
參考:http://download.csdn.net/download/hefang0711/7239985跨域