Struts中Action处理后跳转到原页面的一个新窗口,代码如何写?

时间:2021-03-28 19:39:19
而且新窗口必须是没有地址栏工具栏那些东西,而且大小固定,不是全屏的那种弹出窗口页面。
急求解决办法!谢谢

11 个解决方案

#1


<script>
window.open("");
</script>

#2


这个方法我知道,但觉得与Struts不好整合

#3


1.先用:"_blank"属性使表单提交时产生新窗口,如
<html:form action="" target="_blank">
...............
</html:form>
2.转发的页面比如原来是这样
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccc
</BODY>
</HTML>
那么把它改成:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<div id="newWindow">
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccc
</div>
</BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var bw = window.open("","","width=60,height=60");
bw.document.write(newWindow.innerHTML);
window.opener=null;
window.close();
//-->
</SCRIPT>
</HTML>
也就是把你转发后生成的html<body>标记内的所有内容要放到id为newWindow的标记内,脚本的作用是产生固定大小的新窗口,内容为原有窗口的内容,并关闭原有窗口...

#4


这方法不错
会不会让用户明显感觉到有个大页面产生然后被关掉,再弹出窗口?

#5


我怎么看不懂你的问题呢?什么叫转到原页面的一个新窗口?原页面就是一个窗口了,转到原页面,又是一个新窗口?看糊涂了。
只能揣测。你的意思是提交时,产生一个新窗口,action返回的页面要在新窗口里面显示?如果是这样,比较好办。
首先打开一个命名窗口。
window.open("about:blank","test","width=60,height=60");
然后设置form提交的target指向这个命名窗口。
yourform.target=test;
这样就会打开一个空白窗口(about:blank产生,你也可以自己美化这个页面),然后加载你的action返回的页面。

#6


我有个小问题,楼主的窗口会不会被助手干掉。。。

#7


会的

#8


嗯,有道理

#9


up

#10


function submitCheck(btn){
if(btn.name == "aa"){
document.forms[0].action ="actionA"
document.forms[0].target = "newWindow";
window.open("","newWindow","top=0,left=0,width=1015,height=710,location=no,menubar=no,scrollbars =no,status=no,titlebar=no,toolbar=no");
}else{
document.forms[0].action ="actionA"
document.forms[0].target = "";
}
document.forms[0].btnname.value = btn.name;
document.forms[0].submit();
}

这个可以控制一个页面提交的时候,可以在新窗口处理,也可以在本窗口处理,但是我不知道,validator怎么佩

#11


同意:
<div id="newWindow">
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccc
</div>
</BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var bw = window.open("","","width=60,height=60");
bw.document.write(newWindow.innerHTML);
window.opener=null;
window.close();
//-->
</SCRIPT>

#1


<script>
window.open("");
</script>

#2


这个方法我知道,但觉得与Struts不好整合

#3


1.先用:"_blank"属性使表单提交时产生新窗口,如
<html:form action="" target="_blank">
...............
</html:form>
2.转发的页面比如原来是这样
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccc
</BODY>
</HTML>
那么把它改成:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<div id="newWindow">
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccc
</div>
</BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var bw = window.open("","","width=60,height=60");
bw.document.write(newWindow.innerHTML);
window.opener=null;
window.close();
//-->
</SCRIPT>
</HTML>
也就是把你转发后生成的html<body>标记内的所有内容要放到id为newWindow的标记内,脚本的作用是产生固定大小的新窗口,内容为原有窗口的内容,并关闭原有窗口...

#4


这方法不错
会不会让用户明显感觉到有个大页面产生然后被关掉,再弹出窗口?

#5


我怎么看不懂你的问题呢?什么叫转到原页面的一个新窗口?原页面就是一个窗口了,转到原页面,又是一个新窗口?看糊涂了。
只能揣测。你的意思是提交时,产生一个新窗口,action返回的页面要在新窗口里面显示?如果是这样,比较好办。
首先打开一个命名窗口。
window.open("about:blank","test","width=60,height=60");
然后设置form提交的target指向这个命名窗口。
yourform.target=test;
这样就会打开一个空白窗口(about:blank产生,你也可以自己美化这个页面),然后加载你的action返回的页面。

#6


我有个小问题,楼主的窗口会不会被助手干掉。。。

#7


会的

#8


嗯,有道理

#9


up

#10


function submitCheck(btn){
if(btn.name == "aa"){
document.forms[0].action ="actionA"
document.forms[0].target = "newWindow";
window.open("","newWindow","top=0,left=0,width=1015,height=710,location=no,menubar=no,scrollbars =no,status=no,titlebar=no,toolbar=no");
}else{
document.forms[0].action ="actionA"
document.forms[0].target = "";
}
document.forms[0].btnname.value = btn.name;
document.forms[0].submit();
}

这个可以控制一个页面提交的时候,可以在新窗口处理,也可以在本窗口处理,但是我不知道,validator怎么佩

#11


同意:
<div id="newWindow">
aaaaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccc
</div>
</BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var bw = window.open("","","width=60,height=60");
bw.document.write(newWindow.innerHTML);
window.opener=null;
window.close();
//-->
</SCRIPT>