加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

没有IE就没有伤害!浏览器兼容性问题解决方案汇总

发布时间:2017-09-04 12:22:09 所属栏目:经验 来源:掘金
导读:副标题#e# 原标题:浏览器兼容性问题解决方案 · 总结 普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的。俗话说:没有IE就没有伤害。 贴士:内容都是自己总结的,不免会出现错误或者bug,欢

DOM 事件处理程序的兼容写法(能力检测)

  • var eventshiv = {

  •  // event兼容 

  • getEvent: function(event) 

  • {return event ? event : window.event; 

  • },

  •  // type兼容 

  • getType: function(event) {

  • return event.type; 

  • }, 

  •  // target兼容 

  • getTarget: function(event) {

  • return event.target ? event.target : event.srcelem; 

  • }, 

  •  // 添加事件句柄 

  • addHandler: function(elem, type, listener) {

  • if (elem.addEventListener) { 

  • elem.addEventListener(type, listener, false); 

  • else if (elem.attachEvent) {

  •  elem.attachEvent('on' + type, listener); 

  • else { 

  • // 在这里由于.与'on'字符串不能链接,只能用 [] 

  • elem['on' + type] = listener;

  •  }

  •  },

  •  // 移除事件句柄 

  • removeHandler: function(elem, type, listener) {

  • if (elem.removeEventListener) { 

  • elem.removeEventListener(type, listener, false); 

  • else if (elem.detachEvent) {

  •  elem.detachEvent('on' + type, listener); 

  • else { 

  • elem['on' + type] = null;

  •  } 

  • }, 

  •  // 添加事件代理 

  • addAgent: function (elem, type, agent, listener) { 

  • elem.addEventListener(type, function (e) {

  • if (e.target.matches(agent)) {

  •  listener.call(e.target, e); // this 指向 e.target 

  • }

  • });

  •  }, 

  •  // 取消默认行为 

  • preventDefault: function(event) {

  • if (event.preventDefault) { 

  • event.preventDefault(); } 

  • else { 

  • event.returnValue = false; 

  • }, 

  •  // 阻止事件冒泡 

  • stopPropagation: function(event) {

  • if (event.stopPropagation) { 

  • event.stopPropagation(); 

  • }

  •  else { 

  • event.cancelBubble = true; 

  • };

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读