IE
- Angualr 4的表单脏值检测ng-dirty在IE11下默认为true
- IE8不支持Object.defineProperty( ),所以不支持Vue
- IE11RTM版本没有window.location.origin字段
- IE11建立Websocket时使用形如http://www.abc.com:/websocket的地址时会报错,其他浏览器不会
- IE不支持yyyy-MM-dd hh:mm:ss日期格式,只支持yyyy/MM/dd hh:mm:ss格式
- IE8中event对象须从window对象中获取
- IE8中不支持e.target用于获取当前元素,可以用以下方法来解决
$("#btn").click(function(e) {
var event = e | window.event;
var target= event .target || event .srcElement; //获取document 对象的引用
})
- event.preventDefault的作用是阻止默认行为,常用于a标记等有默认行为的元素。比如a标签点击时默认跳转链接,就可以用e.preventDefault进行阻止。a标签的默认跳转行为还可以用下面这种方式来阻止
<a href="javascript:void(0)">跳转到首页</a>
项目中还遇到了一个想了好久才想明白的兼容性问题,给button按钮添加点击事件后,点击后弹出弹框,但是按回车后还可以继续弹出弹框。这是因为,当焦点在input或button等表单元素上时,浏览器默认按下回车时触发按钮的点击事件,这时就可以用通用的方法来阻止默认行为了
$("button").click(function(e) {
var event = e | window.event;
if(e.preventDefault) {
event .preventDefault();
} else {
event .returnValue = false;
}
});
- IE8不支持css :after选择器
IE8-IE9更新
- createElement 方法中不允许使用尖括号<>
- IE9 标准模式不支持arguments.caller 属性
- 不再支持使用不带“.call”或“.bind”的函数指针调用方法
- 不再连接内容属性和 DOM expando
- JavaScript 属性列举在IE9 中不同
- 数学精确度在IE9 中不同
- 间接“eval”函数调用的行为方式不同
- IE9 处理含大型索引的数组项目的方式不一样
- 重叠元素会被复制
- DOM中会保留空格
- 部分DOM 事件已过时
IE10-IE11更新
- 已删除attachEvent,改用addEventListener
- 已删除window.execScript,改用eval
- 已删除window.doScroll,改用window.scrollLeft、window.scrollTop
- 已删除document.all,改用document.getElementById
- 已删除document.fileSize、img.fileSize,使用 XMLHttpRequest 可提取源
- 已删除script.onreadystatechange 和 script.readyState,改用script.onload
- 已删除document.selection,改用window.getSelection
- 已删除document.createStyleSheet,改用document.createElement("style")
- 已删除style.styleSheet,改用style.sheet
- 已删除window.createPopup,改用 div 或 iframe(zIndex 值很高)
chrome
- 61版本下bootstrap-datetimepicker存在日期选择框隐藏出现内容残留的问题
Firefox
- beforeunload事件中的弹框无法显示,异步ajax无法发送