var ev = ev || window.event;
document.documentElement.clientWidth || document.body.clientWidth;
var target = ev.srcElement || ev.target;
补充
补充:所谓"兼容性写法",是指同一段 JS 代码在不同浏览器(尤其 IE 与 W3C 标准浏览器)之间行为不一致时,通过回退方案保证正常运行:
- 事件对象 :W3C 中事件对象作为参数传入回调;IE8 及以下绑定在 window.event 上。用
ev = ev || window.event同时兼容。- 事件源 :W3C 用
event.target,IE 用event.srcElement,用target = ev.srcElement || ev.target兼容。- 可视区宽度 :标准浏览器是
document.documentElement.clientWidth,怪异模式 / Quirks 下要用document.body.clientWidth,二者或运算即可。- 阻止冒泡 / 默认行为 :W3C 用
stopPropagation/preventDefault,IE8 用cancelBubble = true/returnValue = false。- 事件绑定 :标准
addEventListener、IE8 专属attachEvent(现已极少需要兼容 IE8)。现代项目通常借助 jQuery、babel-polyfill 等封装好兼容层,开发时不再直接写上述代码。
来源整理自:vue3js.cn 面试官系列



