龙空技术网

好程序员分享javascript中的常见的兼容写法

好程序员 86

前言:

今天你们对“csstop兼容”大概比较看重,咱们都想要分析一些“csstop兼容”的相关内容。那么小编也在网络上收集了一些关于“csstop兼容””的相关知识,希望你们能喜欢,同学们快快来了解一下吧!

好程序员分享javascript中的常见的兼容写法

1 .获取后一个兄弟节点的兼容写法

var nextElement=oLi3.nextElementSibling||oLi3.nextSibling;

2. 获取前一个兄弟节点兼容写法

var previousElement = oLi3.previousElementSibling || oLi3.previousSibling;

3. childNodes的兼容使用

function getChildNodes(ele) {

//1.定义一个空的数组

var arr = [];

//2.获取指定元素

var oEle = document.querySelector(ele);

//3.将元素下边的所有儿子拿到

for (var i = 0; i < oEle.childNodes.length; i++) {

//4.变量判断真的儿子(元素节点nodeType==1)

if (oEle.childNodes[i].nodeType == 1) {

//5.将真儿子添加到数组里

arr.push(oEle.childNodes[i])

}

}

//6.返回数组

return arr;

}

4.拿到第一个儿子

var No1 = oBox.firstElementChild || oBox.firstChild;

5.拿到最后 个儿子

var oLast = oBox.lastElementChild || oBox.lastChild;

6.事件目标对象兼容

var t = event.target || event.srcElement;

滚动条的兼容写法

一 简单兼容写法

document.documentElement.scrollTop||document.body.scrollTop

二 高级兼容写法

function myScroll() {

// ie9以上, google,火狐都能用

if (window.pageXOffset != undefined) {

return {

"left": window.pageXOffset,

"top": window.pageYOffset

}

} else if (document.compatMode == "CSS1Compat") {

// 标准 DTD (有声明头)

return {

"left": document.documentElement.scrollLeft,

"top": document.documentElement.scrollTop

}

}

// 非标准 没有 DTD (没有声明头)

return {

"left": document.body.scrollLeft,

"top": document.body.scrollTop

}

}

html5的新标签在 ie 6 7 8 下有兼容问题,解决原理是 动态创建标签 document.createElement,我可以是快速使用html5shiv插件

事件对象的兼容写法

var e=evt||window.event;

键盘事件

var keyCode = e.keyCode || e.which;

获取样式的兼容写法

function getStyle(obj, attr) {

// 非ie,google,火狐

if (window.getComputedStyle) {

return window.getComputedStyle(obj, null)[attr];

}

//ie 6 8 9

return obj.currentStyle[attr];

}

阻止冒泡的兼容

if (e.stopPropagation) {

e.stopPropagation();

} else {

e.cancelBubble = true;

}

阻止默认行为

if (e.preventDefault) {

e.preventDefault()

} else {

e.returnValue = false;

}

事件监听的兼容写法

oBtn.addEventListener("click", function () {

alert("长沙千锋老罗最帅");

}, {

once: true, // 只能被点一次

useCapture: true // true||false

})

//obj 给指定的元素添加事件

//type 事件的类型(click,mouseenter..)

//fn 函数名称

//useCapTure 捕获还是冒泡

function addEvent(obj, type, fn, useCapTure) {

if (obj.addEventListener) {

obj.addEventListener(type, fn, useCapTure)

} else {

obj.attachEvent("on" + type, fn)

}

}

事件监听移除兼容写法

function removeEvent(obj, type, fn, useCapTure) {

if (obj.removeEventListener) {

obj.removeEventListener(type, fn, useCapTure);

} else {

obj.detachEvent("on" + type, fn);

}

}

标签: #csstop兼容