有兩個頁面 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 等瀏覽器.