最近修改了管理系统在IE浏览器中的一些兼容问题,记录一下。
1.jQuery UI 1.8.4 的 Draggable 在 IE9和IE10中不能移动。
系统中用的是jquery-1.7.2.min.js, jquery-ui-1.8.4.min.js,在前端用dialog创建窗口,使用鼠标不能移动。
修改方法:在jquery-ui-1.8.4.min.js文件中修改
将_mouseMove的
_mouseMove:function(a){
if(c.browser.msie&&!a.button)return this._mouseUp(a);
改成
_mouseMove:function(a){if(c.browser.msie&&document.documentMode<9&&!a.button)return this._mouseUp(a);
2.jquery动态添加select(IE9)。
修改前:
var selectObj = $(ELT)("#"+fixID("quotaSelect" + tid));
selectObj.html('<option>'+setting_unit+'</option>');
setting_unit是GiB只显示一个字符。
修改后: selectObj[0].options.add(new Option(setting_unit, setting_unit, true, true));
3.(IE兼容问题) document.selection在不同IE版本中的使用。
在ip输入时遇到的问题,输入ip地址时,backspace退格失效,修改前:
var r = document.selection.createRange().duplicate();
修改之后:
if (window.getSelection) {
var r = window.getSelection();
} else if (document.getSelection) {
var r = document.getSelection();
} else if (document.selection) {
var r = document.selection.createRange().duplicate();
}
删除当前各的内容之后光标会到前一个格的最前面,我们希望是在最后面,可以这样写
$("#id").val("").focus().val(t); t是前一个格的值。