最近在做项目的时候,使用window.open()打开一个子窗口,父窗口却意外的关闭了。
当点击 “我的资料” 打开我的资料子窗口的时候,父窗口莫名其妙的关闭了,退到了登录界面:
这个问题在IE9下是正常的, 可是在火狐,chrome,opera等非IE内核的浏览器中都会出现。
代码是这么写的:
<li>
<a href="#" οnclick="accountInfo('<%=basePath%>account.do?method=accountInfo&from=myaccount&type=view&accountId=<%=SessionUtil.getuser().getAccountId()%>')">
<i class="icon-user"></i>
我的资料
</a>
</li>
经过与其他项目的对比排查,找到了原因:
在<a>标签中使用了'#'代替了实际的地址,而使用onclick()函数触发事件,原因就在这里,只要把上面的代码改为:
<li>
<a href="accountInfo('<%=basePath%>account.do?method=accountInfo&from=myaccount&type=view&accountId=<%=SessionUtil.getuser().getAccountId()%>')" >
<i class="icon-user"></i>
我的资料
</a>
</li>
将href指向js函数即可,不使用onclick触发事件,这样再打开子窗口的时候,父窗口就没什么变化了。