今天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