一、EasyUI$的window('open')在IE8下兼容性问题
今天在公司使用EasyUI的$('#win').window('open');方法打开一个window窗体时发现EaysUI的脚本在IE8下执行时出现不兼容的情况
HTML代码如下:
1 <a href="javascript:void(0);" class="easyui-linkbutton" onclick="$('#batchImportUser').window('open')">批量导入用户</a> 2 3 <div id="batchImportUser" class="easyui-window" title="批量导入用户" 4 style="width: 600px; height: 200px" 5 data-options="iconCls:'icon-save',modal:true,collapsible:false,minimizable:false,closed:true"> 6 <div align="center"> 7 请选择部门:<input id="orgId1" name="orgId1" class="easyui-combotree" style="width:150px;"> 8 <input type="hidden" id="orgName1"> 是否覆盖:<input type="checkbox" id="override" name="override"><br/> 9 批量导入用户:<input width="0px" type="file" id="importUser" name="importUser"> 10 <input type="button" value="导入" onclick="ajaxFileUpload()"> 11 </div> 12 </div>
点击按钮后会执行"$('#batchImportUser').window('open')"这段代码打开easyui-window,在IE8浏览器打开的窗体如下图所示:
而在火狐和google下打开的window窗体是可以正常显示,如下图所示:
郁闷啊,在IE8下居然是这样的效果,查了一下原因,原来是IE8解析页面的HTML内容和执行JavaScript脚本时使用了去解析了
改成用模式去解析就可以正常打开了
二、解决办法
找出了问题所在,下面记录一下解决的办法,在页面的head标签里面加上下面的一段代码:
1 <head> 2 <meta http-equiv="X-UA-Compatible" content="IE=edge" > 3 </head>
这段代码的意思是"使用Edge模式,通知InternetExplorer浏览器以最高级别的可用模式显示内容",这样在IE8下就会模式去解析HTML和执行JavaScript脚本了,这样就可以正常打开window窗体了,如下图所示:
有时候这种浏览器解析模式真的是很坑人的,老是以为是自己的代码写得有问题,但其实却是浏览器的解析模式造成的,这些小细节的东西还是得记录一下,以后再遇到类似的情况就可以知道如何去解决了!