首页 > 代码库 > 实现浏览器兼容的innerText
实现浏览器兼容的innerText
今天学习到了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;
}
})
};
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>
<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);
}
console.log(innerText.getInnerText(ul));
console.log(ul.innerText);
}
在FF下的效果(通过ul.innerText返回了undefined):
实现浏览器兼容的innerText
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。