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 ...
随机推荐
- MongoDB:Replica Set 之操作日志 Oplog
转载地址:http://francs3.blog.163.com/blog/static/4057672720121133328120/ 之前的blog 学习了 MongoDB 主从搭建,以及节点管 ...
- studio-引入外来包
参考: http://stackoverflow.com/questions/16588064/how-do-i-add-a-library-project-to-the-android-studio ...
- HTTP 1.1与HTTP 1.0的比较
HTTP 1.1与HTTP 1.0的比较 一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 ...
- DataTable中的数据赋值给model z
create table memberinfo ( member_id int, member_name varchar(20), member_birthday varchar(50) ) go / ...
- windows service的继承类ServiceBase
https://msdn.microsoft.com/zh-cn/library/system.serviceprocess.servicebase.exitcode(v=vs.80).aspx 在停 ...
- git重写历史记录
1 修改上一次历史提交,替换掉上次的提交git commit --amend 2 git rebase 将不同分支路径合并到同一分支路径上eg:将master分支上的 conflic rebase合并 ...
- Memcached常用命令及使用说明(转)
一.存储命令 存储命令的格式: 1 2 <command name> <key> <flags> <exptime> <bytes> < ...
- MS Sql Server 中主从库的配置和使用介绍(转)
网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库. 主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据 ...
- gomobile 真机 log 打出的日志跟踪
go mobile 开发的应用,真机调试时,我们期望看到log包打出的日志, 这时候就需要借用 Android Device Monitor 了. 我们的 go 代码中用最简单的 log.Printl ...
- [SQL]SQL删除数据的各种方式总结
SQL删除数据的各种方式总结 一.使用DELETE从表中删除目标行.记录每次删除操作.如: USE pubs DELETE FROM authors WHERE au_lname = 'McBadde ...