浏览器兼容性小记-DOM篇(一)

1、childNodes引入空白节点问题:使用childElementCount或children

2、innerText: FF中不支持该属性,使用textContent代替

3、变量名与某HTML对象id相同时,引用该变量只会取得id名与其相同的html对象(ie8-);声明变量时前面一律加上var,尽量避免id名与变量名相同

4、为ele.style.property赋值时一律带上单位:e.style.height= 34 + ‘px’

5、禁止选择网页内容:

//IE
document.onSelectStart = function(){
  return false;
}
//FF
-moz-user-select: none;
//Chrome
-webkit-user-select: none;

6、访问form中的元素:ff只支持document.formName.elements['elementName']的方式,ie下可以使用document.formName.item('name');统一使用elements的方式;凡是遇到集合类对象(NodeCollection、NodeList)一律使用collection['name']的方式

7、自定义html元素特性问题:IE下可以使用e.selfAttr = variable/e.selfAttr方式来设值和取值,FF中只能使用e.setAttribute(attr, value)/e.getAttribute('attr')方式

8、input元素的type特性问题:IE下该属性是只读的,FF中可以动态设置;一律不能修改,若需要修改则删除原来元素,重新创建新元素

9、window.location.href问题:就浏览器可以通过这种方式来获取当前页面url;应当统一使用window.location来方位页面url,如:location.hostname,location.port,location.pathname

10、在浏览器中打开新窗口问题:

//子窗口通过window.opener方式来访问父窗口,父窗口通过parentWin来控制子窗口
parentWin = window.open(url, name, properties);

11、body载入问题:FF中的body对象在body标签为载入完全时即可访问,IE下必须完全读入后才执行

12、function、new function(){}、new Function('.....')三者的区别

13、FF中不支持e.parentElement方式方位父元素,只能使用e.parentNode方式

14、Table操作问题,IE中无法使用innerHTML方式对table和tr进行操作;一般方法是借助js类库,将innerHLML转化为dom节点,并插入到tbody下

15、IE下不支持使用e.setAttribute方式来整体设值style属性问题:同时使用e.setAttribute('style', '.......')和e.style.cssText = ‘。。。。。。。’方式来设置

16、document.createElement('<div class="name"></div>')方式创建html元素在FF中不支持

//IE
document.createElement("<input type='radio'>");
//FF
var ipt = document.createElement('input');
ipt.type = "radio";

17、iframe问题:

<iframe src="xxx.html" id="frameId" name="frameName" />

IE 中可以通过window.top.frmaeId或window.top.frameName方式来访问farme;FF中只支持第二种方式;IE在iframe资源未加载完成时无法访问iframe.contentWindow对象

18、url encoding 问题:encodeURIComponent适用于对url后的参数编码、encodeURI:主要用于location对象跳转时对整个url编码

19、节点插入问题:IE:insertAdjacentElement(position,src);FF:insertBefore(src, ref)

20、IE9以下不能访问html元素的构造器,如判断元素是否为HTMLElement方法只能使用:e.nodeType === 1不能使用 e instanceof HTMLElement方式

时间: 2024-09-20 17:14:45

浏览器兼容性小记-DOM篇(一)的相关文章

浏览器兼容性小记-DOM篇(二)

1.DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现:每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型: Node.ELEMENT_NODE Node.ATTRIBUTE_NODE Node.TEXT_NODE Node.CDATA_SECTION_NODE Node.ENTITY_REFERENCE_NODE Node.ENTITY_NODE Node.PROCESSING_INSTRUCTION_NODE Node.COMMENT_

浏览器兼容性测试小记-DOM篇(一)

1.childNodes引入空白节点问题:使用childElementCount或children 2.innerText: FF中不支持该属性,使用textContent代替 3.变量名与某HTML对象id相同时,引用该变量只会取得id名与其相同的html对象(ie8-):声明变量时前面一律加上var,尽量避免id名与变量名相同 4.为ele.style.property赋值时一律带上单位:e.style.height= 34 + 'px' 5.禁止选择网页内容: 6.访问form中的元素:f

Dom与浏览器兼容性说明_DOM

作为一个Web前端工作者,你是否在工作中常被浏览器兼容性问题所困惑.例如Css样式? 明明在 IE浏览器里显示一切正常的网页.到了FireFox或谷歌浏览器中却乱作一团.或许你在使用JavaScript和Dom编写网页脚本时,也遇到过类似问题. 明明在FireFox浏览器里运行正常的脚本.到了IE里却出现错误. 比如说获取触发js事件的源目标.还有鼠标位置或元素位置问题.动态为元素绑定事件等...我将在下面列举部份Dom指令在IE和FireFox等浏览器 不兼容性的问题!限于篇幅.我不在该页对提

JavaScript中解决多浏览器兼容性23个问题的快速解决方法_javascript技巧

一.document.formName.item("itemName") 问题 问题说明:IE下,可以使用 document.formName.item("itemName") 或 document.formName.elements ["elementName"]:Firefox 下,只能使用document.formName.elements["elementName"]. 解决方法:统一使用document.formNa

浏览器兼容性问题大汇总_javascript技巧

JavaScript 1.HTML对象获取问题 FireFox:document.getElementById("idName"); ie:document.idname或者document.getElementById("idName"). 解决办法:统一使用document.getElementById("idName"); 2.const问题 说明:Firefox下,可以使用const关键字或var关键字来定义常量; IE下,只能使用var

JavaScript 浏览器兼容性总结及常用浏览器兼容性分析_javascript技巧

1. children与childNodes IE提供的children.childNodes和firefox下的childNodes的行为是有区别的,firefox下childNodes会把换行和空白字符都算作父节点的子节点,而IE的childNodes和children不会.比如: <div id="dd"> <div>yizhu2000</div> </div> d为dd的div在IE下用childNodes查看,其子节点数为1,而

Javascript 多浏览器兼容性问题及解决方案_javascript技巧

CSS 多浏览器兼容性问题及解决方案 一.document.formName.item("itemName") 问题 问题说明:IE下,可以使用 document.formName.item("itemName") 或 document.formName.elements ["elementName"]:Firefox 下,只能使用document.formName.elements["elementName"]. 解决方法:

css与javascript跨浏览器兼容性总结_javascript技巧

本文以大量实例形式总结了css与javascript跨浏览器的兼容性问题.分享给大家供大家参考.具体总结如下: 一.CSS样式兼容性 1. FLOAT闭合(clearing float) 网页在某些浏览器上显示错位很多时候都是因为使用了float浮动而没有真正闭合,这也是div无法自适应高度的一个原因.如果父div没有设float而其子div却设了float的话,父div无法包住整个子DIV,这种情况一般出现在一个父DIV下包含多个子DIV.解决办法: 1) 给父DIV也设上float 2) 在

新手学做网站需注意浏览器兼容性

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 今天写一写关于新手做网站过程当中最经常遇到的问题之一:浏览器兼容性.事实上,这个问题不仅仅是新手学习的过程中会遇到,即使是资深的前端程序员,往往也会因为这个问题头疼不已.原因很简单,虽然W3C提出了一套标准,但是浏览器厂商往往不会完全按照标准来,这当中以微软为最奇葩的代表,每代IE都各有特点,问题也不仅仅存在于IE身上,其他浏览器也很难说自己