FireFox中textNode分片的问题_javascript技巧

Ajax应用中很常见的行为便是后台把数据用XML包裹好返回给浏览器,浏览器解析XML,得到nodeValue

如果单个node中内容很长(超过4096字节),这时在FireFox/Mozilla中就要注意了,内容将会被FrieFox分解为多个textNode,每个大小为4096字节。这种情况可以用下列函数处理(IE兼容)

复制代码 代码如下:

function getNodeValue(node) 

        if(node && node.hasChildNodes()){ 
                //return node.firstChild.nodeValue; 
                var s="" 
                //Mozilla has many textnodes with a size of 4096 
                //chars each instead of one large one. 
                //They all need to be concatenated. 
                for(var j=0;j<node.childNodes.length;j++){ 
                        s+=new String(node.childNodes.item(j).nodeValue); 
                } 
                return s; 
        }else 
                return ""; 

时间: 2024-10-13 00:39:53

FireFox中textNode分片的问题_javascript技巧的相关文章

firefox中JS读取XML文件_javascript技巧

firefox中JS读取XML文件 在网上搜"firefox中JS读取XML文件"的方法,找了半天,好多都是问了没人答的.看到一堆程序员在抱怨firefox:"除了累死程序员没什么好处.",言归正传.firefox不支持ie中的ActiveXObject对象,要得到一个XML DOM有以下2种方法:1.document.implementation.createDocument("", "", null);2.window.X

JavaScript中setTimeout的那些事儿_javascript技巧

一.setTimeout那些事儿之单线程  一直以来,大家都在说Javascript是单线程,浏览器无论在什么时候,都且只有一个线程在运行JavaScript程序.  但是,不知道大家有疑问没--就是我们在编程过程中的setTimeout(类似的还有setInterval.Ajax),不是异步执行的吗?!!  例如: <!DOCTYPE html> <head> <title>setTimeout</title> <meta http-equiv=&q

javascript中setAttribute兼容性用法分析_javascript技巧

本文实例分析了javascript中setAttribute兼容性用法.分享给大家供大家参考,具体如下: 1:常规属性建议使用 node.XXXX. 2:自定义属性建议使用node.getAttribute("XXXX"). 3:当获取的目标是JS里的关键字时建议使用node.getAttribute("XXX"),如label中的for. 4:当获取的目标是保留字,如:class,请使用className代替. setAttribute(string name,

Javascript在IE和Firefox浏览器常见兼容性问题总结_javascript技巧

本文总结分析了Javascript在IE和Firefox浏览器常见兼容性问题.分享给大家供大家参考,具体如下: 表单 document.formName.item("itemName") IE:可以使用document.formName.item("itemName")或document.formName.elements["elementName"] Firefox:只能使用document.formName.elements["el

JS往数组中添加项性能分析_javascript技巧

比较了4种可以向数组添加项的方法之间的性能: 使用索引器添加 复制代码 代码如下: console.time("index"); var a = []; for (var i = 0, l = times; i < l; i++) {     a[i] = i; } console.timeEnd("index"); 使用push方法 复制代码 代码如下: console.time("push"); var a = []; for (var

JavaScript中计算网页中某个元素的位置_javascript技巧

由于项目的需要,测试中需要对网页元素进行截图,以确保它看上去没有问题.之前我写过一篇文章介绍过一种方法,先使用 WebDriver 进行全屏截图,然后根据目标元素(DOM Element)所在的位置,再对截下来的图片进行剪裁,保留我们需要的位置即可. 那段代码一直都工作得很好,直到我知道了一个东西:iframe.iframe(普通的 frame 也是一样的,不过 frame 现在不太常见,这里只用 iframe 举例)中的内容被视为一个独立的网页,连 Window 对象也是和它的父级网页分开的.

IE与FireFox的JavaScript兼容问题解决办法_javascript技巧

以下是 我在开发中遇到的情况: 1.动态删除table里的某一行. table:表示table对象. k:表示行号 table.rows[k].removeNode(true); //firefox执行失败,ie执行成功 IE与FireFox兼容写法 table.deleteRow(k); 2.为HTML标签自定义属性. inputElement:表示表单元素. propertyName:表示表单元素下的某个属性 inputElement.propertyName; //firefox执行失败,

再谈ie和firefox下的document.all属性_javascript技巧

例如下面的代码: 复制代码 代码如下: <html> <body> <SCRIPT LANGUAGE="JavaScript"> <!-- if(document.all) alert("this is a IE"); else alert("this is a Mozilla"); //--> </SCRIPT> </body> </html> 在IE浏览器会输

设置iframe的document.designMode后仅Firefox中其body.innerHTML为br_javascript技巧

重现如下: 复制代码 代码如下: <!doctype html> <html> <head> <title>设置iframe的document.designMode后仅Firefox中其body.innerHTML为br</title> <meta charset="utf-8"> </head> <body> <iframe frameborder="1" sty