javascript ES3方法IE兼容性处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript ES3方法IE兼容性处理相关的知识,希望对你有一定的参考价值。


/**
 *获取内部文本
 * @param element
 * @returns {string}
 */
function getInnerText(element) {
    if (typeof element.innerText === "string") {
        return element.innerText;
    } else {
        return element.textContent;
    }
}

/**
 *设置内部文本
 * @param element
 * @param content
 */
function setInnerText(element, content) {
    if (typeof element.innerText === "string") {
        element.innerText = content;
    } else {
        element.textContent = content;
    }
}


/**
 * 获取下一个兄弟元素 
 * @param obj
 * @returns {*}
 */
function getNextElement(element) {
    if (element.nextElementSibling) {
        return element.nextElementSibling;    //IE678������
    } else {
        var node = element.nextSibling;
        while (node && 1 !== node.nodeType) {
            node = node.nextSibling;
        }
        return node;
    }
}

/**
 *获取上一个兄弟元素
 * @param element
 * @returns {*}
 */
function getPreviousElement(element) {
    if (element.previousElementSibling) {
        return element.previousElementSibling;
    } else {
        var node = element.previousSibling;
        while (node && node.nodeType != 1) {
            node = node.previousSibling;
        }
        return node;
    }
}


/**
 * 获得指定元素的样式,先获取行内,再获取css中的"attr"
 * @param obj
 * @param attr
 * @returns {*}
 */
function getStyle(obj, attr) {
    if (obj.currentStyle) {
        return obj.currentStyle[attr];
    } else {
        return getComputedStyle(obj, false)[attr];
    }
}

/**
 * 获得滚动卷去的高,宽
 * @returns {{top: (Number|number), left: (Number|number)}}
 */
function getScroll() {
    return {
        top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0,
        left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0
    }
}

/**
 * 获得可视区宽,高
 * @returns {{width: (Number|number), height: (Number|number)}}
 */
function getClient() {
    return {
        width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0,
        height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0
    }
}

/**
 * 获取鼠标在文档中的位置
 * @param e
 * @returns {{x: (Number|*), y: (Number|*)}}
 */
function getPage(e){
    return {
        x: e.pageX || e.clientX + getScroll().left,
        y: e.pageY || e.clientY + getScroll().top
    }
}

/**
 * 事件监听
 * @param obj
 * @param evt
 * @param fn
 */
function addEventSimple(obj, evt, fn) {
    if (obj.addEventListener) obj.addEventListener(evt, fn, false);
    else if (obj.attachEvent) obj.attachEvent("on" + evt, fn)
}

以上是关于javascript ES3方法IE兼容性处理的主要内容,如果未能解决你的问题,请参考以下文章

总结IE和Firefox的Javascript兼容性总结

JavaScript添加IE事件处理程序

Javascript不同浏览器差异及兼容方法

解决在 IE8 上运行 javascript reduce() 方法的兼容性问题

JavaScript Object.keys()方法替代与IE8的兼容性

JavaScript——数组的indexOf()方法在IE8中的兼容性问题