javascript各种兼容性问题,不断更新
ie6-ie8 不支持textContent支持innerText
chrome 支持textContent innerText
fireFox 仅支持textContent不支持innerText
<body>
<div id="s1">
<p>ceshi </p>
</div>
</body> <script>
var s1=document.getElementById('s1');
console.log(s1.innerHTML); //输出 <p>ceshi </p>
console.log(s1.outerHTML); //输出<div id="s1">
<p>ceshi </p>
</div>
console.log(s1.innerText=s1.textContent); //输出ceshi
console.log(s1.outerText=s1.textContent); //输出ceshi
</script>
修改css样式
一般用js修改样式,都是获取id,如
var oDiv=document.getElementById("div1");
//alert(oDiv.style.width);
//获取非行间样式
但是這是修改行间的属性,还记得style有优先级吗,有时候我想改的不是行间的代码,改的是style标签的代码
就需要用到以下的函数
//ie下
alert(oDiv.currentStyle.width);
//chrome 和firefox下
alert(getComputedStyle(oDiv,false).width);
这就涉及到兼容性问题
解决此问题就最好用if语句
if(oDiv.currentStyle)
{
alert(oDiv.currentStyle.width);
}
else
{
alert(getComputedStyle(oDiv,false).width);
}
childNodes,firstElementChild,firstChild
首先先看看childnodes
<body>
<ul id="ul1">
<li></li>
<li></li>
</ul> </body> <script>
var oUl =document.getElementById("ul1");
for (var i=0;i<oUl.childNodes.length;i++)
{
if (oUl.childNodes[i].nodeType==1) //nodeType=3表示文本节点,即空格,=1就是标签节点
{
oUl.childNodes[i].style.background='red';
}
}
</script>
這里的childNodes.length为5
和我们想的2相差很大,原因是因为childnodes在ie可以正常显示为2,但是在谷歌和火狐浏览器中就显示5
因为谷歌和火狐浏览器把<li></li>前面的空格也当作一个childnode,叫文本节点。
为了避免這个问题
可以用children、
for (var i=0;i<oUl.children.length;i++)
{
oUl.children[i].style.background='green';
}
这是全兼容的,
获取第一个节点有ie和火狐也有不同的函数,为了兼容性,可以写成這样
if (oUl.firstElemenChild) //用于火狐和chrome
{
oUl.firstElementChild.style.background='black';
}
else
{
oUl.firstChild.style.background="black"; //用于ie5-7
}
javascript各种兼容性问题,不断更新的更多相关文章
- JAVASCRIPT 浏览器兼容性问题及解决方案列表
JAVASCRIPT 浏览器兼容性问题及解决方案列表(1)获取HTML元素只兼容IE:document.all.hello hello 兼容所有: document.getElementById(“h ...
- JavaScript 事件兼容性写法
1.以下是JavaScript事件兼容性写法,使用者可以随意使用,兼容所有浏览器.包括IE6(亲测) <!DOCTYPE html> <html> <head> & ...
- JavaScript 使用技巧(持续更新)
JavaScript 使用技巧(持续更新) 类型检测 使用Object.prototype.toString.call(obj)的方式. 因为无论typeof还是instanceof都无法做到精确判断 ...
- 目前最全的浏览器/CSS选择器兼容性总结(2009-8-10更新)
2009年2月24日,Safari 4.0 beta版正式发布,Safari从它的3.2版本开始就已经支持所有的CSS选择器(包括最新的CSS3).不过为了方便大家的工作,下面提供了最新版本的CSS选 ...
- javascript opacity兼容性随笔
一.CSS兼容代码 .transparent { filter:alpha(opacity=50); /* IE */ -moz-opacity:0.5; /* FireFox old version ...
- javascript event兼容性随笔
一.前言 function ConvertEvent(e, element) { var event = e || window.event; var resultEvent = { event: e ...
- javascript Xml兼容性随笔
一.前言 (function (window) { if (!window.jasen) { window.jasen = {}; } if (!window.jasen.core) { window ...
- javascript position兼容性随笔
一.Javascript源码 if (!window.jasen.core.Position) { window.jasen.core.Position = {}; } function Size(w ...
- JavaScript及兼容性笔记
1. Json to String JSON.stringify(jsonobj)//(IE8+,Chrome 1+,FF 3+) //参考 http://www.nowamagic.net/libr ...
随机推荐
- WeX5和BeX5比较
http://wex5.com/cn/wex5和bex5比较/ WeX5和BeX5比较 许多对WeX5和BeX5略有了解得人都知道,WeX5和BeX5是完全共用前端框架技术的.但是WeX5和BeX5是 ...
- Android SDK的docs访问速度很慢(新)
#设置环境变量 名称:ANDROID_SDK_HOME 值:我的为-->E:\android\android-sdk #代码编译及运行 1.把下面的代码保存为:AndroidDocRepair. ...
- 随笔http
一个HTTP由一条请求命令和一个响应结果组成.这种通信是通过名为HTTP报文(message)的格式化数据块进行的.
- mrp功能分类
mrp主要有六大功能子系统:[工程管理子系统].[销售管理子系统].[计划管理子系统].[采购管理子系统].[库存管理子系统].[MRP运行管理子系统].[工程管理子系统]主要功能:产品/物料编码表. ...
- 区分listview的item和Button的点击事件
这两天修改领导通的ListView widget,在ListView中加入Button这类的有 “点击” 事件的widget,发现原来listview的itemclick居然失效了, 后来在网上查资料 ...
- hadoop对于压缩文件的支持及算法优缺点
hadoop对于压缩文件的支持及算法优缺点 hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心. 如果 ...
- unix 中 ps -ef命令详解
ps -ef 查看正在活动的进程 ps -ef |grep abc 查看含有"abc"的活动进程 ps -ef |grep -v abc 查看不含abc的活动进程 1)ps a 显 ...
- Windows下编译使用Aliyun OSS PHP SDK
摘要: WIN环境下搭建Aliyun OSS PHP SDK编译运行环境.从PHP的安装逐步完成,SDK的编译运行.即使没有任何PHP基础,也能顺利完成. 安装环境:Win7 64 + PHP 5.6 ...
- Group by与having理解
注意:select 后的字段,必须要么包含在group by中,要么包含在having 后的聚合函数里. 1. GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用 group ...
- 如何实现多个div水平均匀排列且量两端贴壁
下面先看一段代码实例: <!DOCTYPE html><html><head><meta charset=" utf-8">< ...