今天遇到了一个JS的问题,后来上网查了一下,原来是对html的DOM操作时候,nextsibling引起的问题,mark一下
网上firefox和ie的javascript兼容性也讲的比较多了
可以在百度上搜索"firefox javascript 兼容性"
比较简单的东西百度上能找到中文的就用baidu好了.
主要一般都是document.all这样的应用,一般改为getElementById
还有就是一个页面有多个表单的时候需要注意一些问题.
下面还有一些需要补充的
就是firstChild,nextsbiling这两个.
下面给出函数吧.还是代码比较说明问题
代码都是网上来的.
不过要注意的是,getNext和getFirstChild是不一样的
next是下一个,同级别的下一个,不会取到自己这个节点的子节点.
可能是因为对dom的理解不一样ie和firefox对firstChild,nextSbiling的处理不太一样.
所以要取到下一个结点,只能用type来判断了.
function getNextSibling(startBrother){
endBrother=startBrother.nextSibling;
while(endBrother.nodeType!=1){
endBrother = endBrother.nextSibling;
}
return endBrother;
}
function getNextSibling1(obj){
if(obj.nextSibling.nodeType==3) {
sibling=obj.nextSibling.nextSibling; // Moz. Opera
}
else {
sibling=obj.nextSibling; // IE
}
return sibling;
}
function getFirstChild(obj){
for (i=0; i<obj.childNodes.length; i++){
if (obj.childNodes[i].nodeType==1)
return obj.childNodes[i];
else
continue;
}
需要使用的时候先getElementByid获取到首结点,然后就可以取到后面的结点了.
另外就是ie不区分变量大小写,收到html首先就格式化了,所以要注意id可能会相同.
会导致一些问题.
另外就是ie会把NULL字符转换成space空格,firefox是不会处理的,但是
如果javascript里面处理NULL会有一些问题.opera基本能够兼容IE的一些
函数,比如documnet.all等等.基本都能用吧,不过空字符还是不行的.是变量中的空字符
会带来问题.
分享到:
相关推荐
本文将详细探讨如何在JavaScript中操作XML文件,并确保代码在Firefox和IE之间具有良好的兼容性。 1. **创建XML对象**: 在JavaScript中,可以使用`ActiveXObject`(仅适用于IE)或`DOMParser`(通用方法)来创建...
例如,IE浏览器会忽略节点间的空白字符和换行,而Firefox和Safari则会将这些视为文本节点。因此,在某些情况下,尤其是在不同浏览器间保持兼容性时,可能需要使用`nextSibling.nextSibling`来获取实际的元素节点。 ...
今天写js的时候遇到了一个陷(da)阱(keng) 关于HTML/XML节点的问题 据说在IE中nextSibling不会返回文本节点,而chrome或者firefox等会返回文本节点…… 这个我的工作带来了很严重的问题 在网上搜到了很多处理方法,都...
FireFox 中遍历 DOM 文档:在FireFox中,可以使用与IE中通用的方法来遍历DOM文档。 FireFox 中处理错误:在FireFox中,可以使用parseError对象来输出错误信息,该对象会替换出错的xml文档。 ```javascript if...
特别是在Internet Explorer(IE)和Firefox(FF)浏览器中,它们对空白文本节点的处理方式不同,IE可能会忽略这些空白文本节点,而Firefox则不会。 在IE中,如果你使用nextSibling获取下一个兄弟节点,可能会直接...
它们在Firefox下可以很好地工作,但请注意,在其他浏览器如Chrome、Safari或IE中,可能需要额外的兼容性处理,因为不同浏览器对DOM API的实现可能存在差异。 总结来说,获取元素同类型的相邻元素在JavaScript中可以...
由于历史原因,不同的浏览器在实现DOM操作时存在一些差异,尤其是早期版本的Internet Explorer(IE)和Firefox(FF)。为了编写跨浏览器兼容的JavaScript代码,开发者需要处理这些差异性。本文将介绍如何兼容IE和FF...
在此项目中,开发者已经针对Firefox和IE9浏览器进行了适配,确保在这些浏览器上能正常运行。 【描述】提到的问题在于代码的兼容性。由于不同的浏览器对JavaScript API的支持程度不同,特别是在老版本的Internet ...
默认情况下,IE和Firefox对嵌入到`innerHTML`中的脚本有不同的执行策略。IE有时会忽略这些脚本,而Firefox则有可能需要特定的操作来触发脚本执行。 在IE中,如果`innerHTML`的HTML字符串中包含`<script>`标签,并且...
它是大部分现代浏览器(包括Firefox的新版本)所支持的。 - 兼容性处理:为了在所有浏览器中都能正常工作,可以使用条件语句进行检测,优先尝试`textContent`,如果不存在再使用`innerText`。 ```javascript if ...
4. `parentObj.children`:在IE7中与`childNodes`类似,但在Firefox中不受支持,因为它只返回直接的元素子节点。 5. `parentObj.getElementsByTagName(tagName)`:与全局的`document.getElementsByTagName()`类似,...
- 所有现代浏览器(如IE、Firefox、Chrome、Safari等)都内置了XML解析器,用于将XML文档转换为可被JavaScript访问的DOM(Document Object Model)对象。 - 微软的XML解析器(如ActiveXObject("Microsoft.XMLDOM")...
4. `parentObj.children`:返回父节点的直接子节点数组,IE7和Firefox上的表现可能不同,不建议单独依赖此属性。 5. `parentObj.getElementsByTagName(tagName)`:在父节点的所有子节点中查找指定类型的子节点,返回...
3. **浏览器兼容性问题**: 在编写JavaScript代码时,开发者需要注意不同浏览器(如IE、Firefox、Chrome等)对某些API或语法的支持程度。例如,`nextSibling`和`nextElementSibling`都是获取元素的下一个兄弟节点,但...
这种方法适用于IE11及以上以及非IE的现代浏览器,如Chrome、Firefox和Opera。代码如下: ```javascript function clearInputFile(f) { try { f.value = ''; // 适用于IE11, Chrome/Firefox/Opera等 } catch ...
Firefox和Opera对此进行了优化,但使用数组仍然是推荐的做法。 1.2.2 使用`join`方法合并数组 在数组中存储要拼接的字符串,然后使用`join('')`将它们合并成一个字符串。这种方式避免了多次创建和销毁字符串对象,...
需要注意的是,Element Traversal规范在以下浏览器中得到支持:IE9+,Firefox 3.5+,Safari 4+,Chrome 和 Opera 10+。 了解并利用这些新的属性,开发者可以更有效地编写跨浏览器的JavaScript代码,减少与元素遍历...
在IE和Firefox下,这种方法可将效率提升10%-30%,在Firefox中尤为明显。例如: ```javascript // 优化前 for (var i = 0; i ; i++) { var el = document.createElement('p'); el.innerHTML = i; document.body...