常用原生JS兼容写法

在我们前端开发中,经常会遇到兼容性的问题,因为要考虑用户会使用不同的浏览器来访问你的页面,你要保证你做的网页在任何一个浏览器中都能正常的运行,下面我就举几个常用原生JS的兼容写法:

1:添加事件方法

addHandler:function(element,type,handler){

 if(element.addEventListener){//检测是否为DOM2级方法

  element.addEventListener(type, handler, false);

 }else if (element.attachEvent){//检测是否为IE级方法

  element.attachEvent("on" + type, handler);

 } else {//检测是否为DOM0级方法

  element["on" + type] = handler;

 };

};

2:获取事件及事件对象目标

 getEvent: function(event){

  return event ? event : window.event;

 },

 getTarget: function(event){

  return event.target || event.srcElement;

 };

3:阻止浏览器默认事件的兼容性写法

preventDefault: function(event){

  if (event.preventDefault){

   event.preventDefault();

  } else {

   event.returnValue = false;

  };

 };

4:阻止事件冒泡的兼容性写法

stopPropagation: function(event){

  if (event.stopPropagation){

   event.stopPropagation();

  } else {

   event.cancelBubble = true;

  };

 };

5:跨浏览器的方式取得字符编码

getCharCode: function(event){

 if (typeof event.charCode == "number"){

  return event.charCode;

 } else {

  return event.keyCode;

 };

};

基本原生JS中兼容性问题我能想起来的也就这么多了,希望对大家的学习有帮助.

另外多加一个CSS3中兼容性写法

   -webkit这个为浏览器的前缀代表浏览器的私有属性
        -ms 这是IE浏览器的前缀
        -moz 这代表了火狐浏览器的前缀
        -o  这代表着欧朋浏览器
        -webkit  这代表了谷歌浏览器和苹果浏览器

今天就先写到这里了,明天见!

坚持!坚持!坚持!坚持!坚持!

时间: 2024-08-03 23:30:34

常用原生JS兼容写法的相关文章

常用原生JS方法总结(兼容性写法)

①添加事件方法 1 2 3 4 5 6 7 8 9 addHandler:function(element,type,handler){     if(element.addEventListener){//检测是否为DOM2级方法         element.addEventListener(type, handler, false);     }else if (element.attachEvent){//检测是否为IE级方法         element.attachEvent("

原生js面向对象写法

Mouse就是一个类,有自己的成员变量和成员方法,成员方法一定加上prototype,避免js原型的坑. var Mouse = function(id) { this.id = id; this.name = ""; this.mes = null;//被创建的那个div this.con = null; this.runAwayInterval = null; this.init(); }; Mouse.prototype.init = function() { // consol

表单校验常用原生js库

1.字符串去除左右空格继承形式// 除去左右空格String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }// 除去左空格String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); } // 除去右空格 String.prototype.RTrim = function() {

前端开发常用原生JS API合集

一.节点 1.1 节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只读 Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写 Node.baseURI //返回当前网页的绝对路径 Node.ownerDocument //返回当前节点所在的顶层文档对象,即document Node.nextSibling //返回

原生JS forEach()和map()遍历的区别以及兼容写法

一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input. 3.匿名函数中的this都是指Window. 4.只能遍历数组. 1.forEach() 没有返回值. arr[].forEach(function(value,index,array){ //do something }) 参数:value数组中的当前项,

【学习笔记】——原生js中常用的四种循环方式

一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0   网页输出"欢迎下次光临" 在网页中弹出框输入1   网页输出"查询中--" 在网页中弹出框输入2   网页输出"取款中--" 在网页中弹出框输入3   网页输出"转账进行中--" 在网页中弹出框输入其他字符   网页输出"无效按键" 四种循环: for循环 while循环 for  in

Js获取当前浏览器支持的transform兼容写法

// 获取当前浏览器支持的transform兼容写法 function getTransfrom() { var transform = '', // document.createElement() 创建元素节点, divStyle = document.createElement('div').style, // 返回的是一组object对象,里面包含了transform // 可能涉及到的几种兼容性写法,通过循环,找出浏览器识别的那个 // 依次为: 全部.Safari 和 Chrome.

黄聪:原生js的音频播放器,兼容pc端和移动端(原创)

更新时间:2018/9/3 下午1:32:54 更新说明:添加音乐的loop设置和ended事件监听 loop为ture的时候不执行ended事件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 const wx = new WxAudio({     ele: '.wx-audio',     title: '河山大好',     disc: '许嵩',     src: '....',     width: '320px',     loop: true,     ende

原生js中6种常见的兼容问题以及解决方案

1.键盘检测兼容写方法var key = e.keyCode || e.which || e.charCode;2.阻止冒泡事件冒泡的兼容e.stopPropagation ? e.stopPropagation():e.cancelBubble = true;3.鼠标箭头事件对象的兼容 obj.onclick = function(evt){           var e = evt || event;                alert(e);            }4.阻止浏览器