在做一个从数据库中查询数据后生成文件并弹出下载框l的操作,在IE8下正常,但是在Ie6下面点击导出就报错,错误信息如下:
2013-12-26 08:45:20 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exceptionjava.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407) at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:752) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)页面上的导出按钮是一个超链接:
<a href="javascript:void(0)" οnclick="window.location=encodeURI('Policy_policyContentsExport.action?oid=${(policy.id)!''}&pname=${(policy.name)!''}');">导出</a>
经排除确认是IE6对javascript:void(0);的支持问题,最后在其添加return false,强制给其一个返回值,不再等待,修改后:
<a href="javascript:void(0)" οnclick="window.location=encodeURI('Policy_policyContentsExport.action?oid=${(policy.id)!''}&pname=${(policy.name)!''}');return false;">导出</a>
备:同时修改为<a href="#" οnclick="window.location=encodeURI('Policy_policyContentsExport.action?oid=${(policy.id)!''}&pname=${(policy.name)!''}');">导出</a>也是可以的,但是href="#"也存在浏览器兼容性问题,虽然解决了该问题,但还存在问题风险,不建议使用