今天学习到了FF不支持innerText,而IE、chrome、Safari、opera均支持innerText。

为了各个浏览器能兼容innerText,必须对js做一次封装。

为啥能实现兼容呢?原因是FF虽然不支持innerText属性,但支持有着类似功能的textContent属性。

以下为封装好的js:

var innerText = {
    setInnerText:(function(ele,value){
        if(typeof ele.innerText == "string"){
            ele.innerText = value;
        }else if(typeof ele.textContent == "string"){
            ele.textContent = value;
        }

    }),
    getInnerText:(function(ele){
        if(typeof ele.innerText == "string"){
            return ele.innerText;
        }else if(typeof ele.textContent == "string"){
            return ele.textContent;
        }

    })

};

我们可以验证下:

 html片段:

<body>
        <ul id="ul"><li>sdsssssss</li><li>qqqq</li><li>wwww</li><li>eeee</li></ul>
    </body>

js:

window.onload=function(){
    console.log(innerText.getInnerText(ul));
    console.log(ul.innerText);
}

在FF下的效果(通过ul.innerText返回了undefined):

实现浏览器兼容的innerText
在chrome浏览器的效果:

实现浏览器兼容的innerText
 

 

相关文章:

  • 2022-02-14
  • 2021-09-23
  • 2022-12-23
  • 2021-12-06
  • 2021-04-16
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
相关资源
相似解决方案