关于EasyUI对话框,表格和菜单组件在IE下的兼容性处理方法

EasyUI版本:V1.4

JQuery版本:V1.11.1


一、对话框

定义对话框:

[html]  view plain copy print ?
  1. <div id="test_dialog" class="easyui-dialog" closed="true" buttons="#test_dialog_buttons"></div>  
  2. <div id="test_dialog_buttons">  
  3.   <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok" onclick="javascript:$('#test_dialog').dialog('close')" style="width: 90px;">Save</a>  
  4.   <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#test_dialog').dialog('close')" style="width: 90px;">Cancel</a>  
  5. </div>  

打开对话框:

[javascript]  view plain copy print ?
  1. function openTestDialog() {  
  2.    $("#test_dialog").dialog({  
  3.       title: "Test Dialog",  
  4.       width: 300,  
  5.       height: 200,  
  6.       modal: true  
  7.    });  
  8.   $("#test_dialog").dialog("open");  
  9. }  

显示效果:

关于EasyUI对话框,表格和菜单组件在IE下的兼容性处理方法_第1张图片

很明显,使用这种方式打开对话框是不正确的,应该修改为使用另外一种方式打开。

首先,修改对话框定义:增加对话框width,height,modal属性定义。

[html]  view plain copy print ?
  1. <div id="test_dialog" class="easyui-dialog" <span style="color:#FF0000;">style="width: 300px;height: 200px;" data-options="modal:true"</span>  closed="true" buttons="#test_dialog_buttons"></div>  

其次,修改打开对话框的方式:

[javascript]  view plain copy print ?
  1. function openTestDialog() {  
  2.     $("#test_dialog").dialog("open").dialog("setTitle""Test Dialog");  
  3. }  

修改后的显示效果:

关于EasyUI对话框,表格和菜单组件在IE下的兼容性处理方法_第2张图片


二、表格

定义表格:

[html]  view plain copy print ?
  1. <table id="test_table" class="easyui-datagrid" url="/agency.do?action=list" toolbar="#test_table_toolbar" pagination="true" fitColumns="true">  
  2.   <thead>  
  3.     <tr>  
  4.       <th data-options="field:'no',width:50">Test1</th>  
  5.       <th data-options="field:'name',width:50">Test2</th>  
  6.       <th data-options="field:'phone',width:50">Test3</th>  
  7.       <th data-options="field:'address',width:50">Test4</th>  
  8.       <th data-options="field:'sale_number',width:50">Test5</th>  
  9.       <th data-options="field:'stock_number',width:50">Test6</th>  
  10.       <th data-options="field:'operation',width:50">Test7</th>  
  11.     </tr>  
  12.   </thead>  
  13. </table>  
  14. <div id="test_table_toolbar">  
  15.   <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="openTestDialog()">测试</a>  
  16. </div>  

显示效果:

为了使表格列按比例填充满表格,应该修改表格列定义:分别明确指定field和width属性。

[html]  view plain copy print ?
  1. <table id="test_table" class="easyui-datagrid" url="/agency.do?action=list" toolbar="#test_table_toolbar" pagination="true" fitColumns="true">  
  2.   <thead>  
  3.     <tr>  
  4.       <th <span style="color:#FF0000;">field="no" width="50"</span>>Test1</th>  
  5.       <th field="name" width="50">Test2</th>  
  6.       <th field="phone" width="50">Test3</th>  
  7.       <th field="address" width="50">Test4</th>  
  8.       <th field="sale_number" width="50">Test5</th>  
  9.       <th field="stock_number" width="50">Test6</th>  
  10.       <th field="operation" width="50">Test7</th>  
  11.     </tr>  
  12.   </thead>  
  13. </table>  
  14. <div id="test_table_toolbar">  
  15.   <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="openTestDialog()">测试</a>  
  16. </div>  

修改表格列定义之后的显示效果:



三、菜单

关于菜单组件的显示,必须明确定义宽度和高度,否则在IE下显示不正常。

ep:

[html]  view plain copy print ?
  1. <div id="mm" class="easyui-menu" style="width: 120px;">  
  2.   <div style="<span style="color:#FF0000;">width: 120px;height: 25px;</span>">New</div>  
  3.   <div style="width: 120px;height: 25px;">  
  4.     <span>Open</span>  
  5.     <div style="width: 150px;height: 80px;">  
  6.       <div>Excel</div>  
  7.       <div>PowerPoint</div>  
  8.     </div>  
  9.   </div>  
  10.   <div style="width: 120px;height: 25px;" data-options="iconCls:'icon-save'">Save</div>  
  11.   <div class="menu-sep"></div>  
  12.   <div style="width: 120px;height: 25px;">Exit</div>  
  13. </div>  

四、关于IE下兼容性问题处理的思考

在使用某个前端UI框架时,必须要考虑到对IE浏览器的兼容性,否则用户体验会大打折扣。

另外,在写自定义JavaScript代码时,也必须要尽量避免使用一些在IE上不能执行的API,且必须注意代码格式的规范性,有可能多一个符号在FireFox和Chrome下执行没有问题,但是在IE下执行时就会报错。


参考:

1. 解决EasyUI在IE下渲染慢的问题:http://www.cnblogs.com/kkwoo/p/3994694.html

2. EasyUI tab组件扩展鼠标双击事件的处理:http://www.easyui.info/archives/869.html

你可能感兴趣的:(jquery,easyui,浏览器,用户体验,对话框)