JSP提交到原来窗口上

有两个页面 A.jsp 和 B.jsp,  A.jsp有一个提交操作, B.jsp是提交操作的Action,

在 A.jsp 页面上加上<base target="_self">,  在IE6.0上, A.jsp的窗口的内容会变成B.jsp, 并且A.jsp的内容加会被覆盖, 但在IE7.0上还是会弹出新的窗口.

怎么做到 A.jsp 提交后不弹出新窗口? 并且 A.jsp 的内容不改变呢? 我这里有几个简单的方法

一. 在A.jsp页面中实现

A.jsp

<form name="form1" method="post" target="submit2Here" action="B.jsp">

//your html code

</form>



<iframe name="submit2Here" style='display:none'></iframe>
 
这样提交后B.jsp的内容就会被放到名字为submit2Here的iframe中
在B.jsp的JS中, 
用window.parent可以获取A.jsp的window;
用window.parent.document可以获取A.jsp的document;
用window.parent.Afunction()可以调用A.jsp中定义的JS方法Afunction;
这样就可以用JS操作A.jsp 中的元素和方法了
二. 使用另外的页面C.jsp
C.jsp
 <iframe name="submitPage"

            src="A.jsp"

            width="900" height="630" frameborder="no" border="0" marginwidth="0" marginheight="0"  allowtransparency="yes" ></iframe>

 <iframe name="submit2Here" style='display:none'></iframe>
A.jsp
<form name="form1" method="post" target="submit2Here" action="B.jsp">

//your html code

</form>
这样提交后B.jsp的内容就会被放到C.jsp中名字为submit2Here的iframe中
在B.jsp的JS中, 
用window.parent.document.frames['submitPage'].contentWindow 可以获取A.jsp的window;
可以用alert(window.parent.document.frames['submitPage'].contentWindow.name);
   或alert(window.parent.document.frames[0].contentWindow.name); 试试
用window.parent.document.frames['submitPage'].contentWindow.document可以获取A.jsp的document;
用window.parent.document.frames['submitPage'].contentWindow.Afunction()可以调用A.jsp中定义的JS方法Afunction;
这样就可以用JS操作A.jsp 中的元素和方法了
 用 contentWindow 属性, 这个能兼容IE, FireFox 等浏览器. 

你可能感兴趣的:(html,jsp,iframe,action,firefox,border)