今天leader 給了個bug對應,說是幫助界面要單獨彈出一個窗口顯示,不能在原來的界面顯示。
後來又追加說,點擊幫助按鈕只能彈出一個窗口,不能每一次都彈出一個,應爲iphone只能支持8個窗口,再多就不能顯示了。
第一感覺,彈窗口顯示,不在同一個窗口顯示,那肯定要加target了,下面就是實施了。
首先,現狀是幫助爲一個button,點擊後提交表單。也就是說需要將表單提交後在一個新的單例的窗口顯示。
直接用window.open 打開一個空白窗口window.open('about:blank','HELP_COMMON');,將窗口的名字命名爲HELP_COMMON。然後將當前form的target改成剛纔打開的那個窗口,代碼: this.form.target='HELP_COMMON' 。 因爲是同一個from中的 ,所以可以直接用this.form獲得form對象。代碼如下:
<p><input type="submit" name="navi" value="help" class="btnSubmitBlueHalf" οnclick="window.open('about:blank','HELP_COMMON'); this.form.target='HELP_COMMON'" /></p>
因爲是submit所以處理完js後,會直接提交,如果是type='button' 要自己提交form
以上是共同的部分,還有一些是特殊的,是鏈接形式的 help ,修改也大概差不多
<html:link page="/navi.do" paramId="<%=MobileScreenIDConstants.SCREEN_ID_NAME %>" paramName="SCREEN_ID_NAME" styleClass="centering_footer" οnclick="window.open('about:blank','HELP_COMMON');this.target='HELP_COMMON'"> help</html:link>
這樣參數依舊可以傳過去。
一個現象是沒有window.open('about:blank','HELP_COMMON')這一句話,仍能按照期望的效果顯示。
而submit提交 的情況 沒有實驗,不知是否也存在這樣的情況。偶是js菜鳥不想深究。
還看到一種提交表單到 新界面的 代碼
chartForm.target = "newWindow";
var win = window.open("about:blank","newWindow","height=650,width=1000,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no");
win.focus();
chartForm.submit();
沒有實踐,僅供參考
http://221.199.150.103/jsj/html/page/book/js/h_target.htm