最近在研究XML的时候,发现火狐与IE的javascript,解析XML支持各不相同。。。。而我的项目必须在这两个浏览器都能用,于是,需要整合不同了。。
大体流程是这样的:
在JSP页面,点击按钮后,通过ajax,跳入后台调用java方法,返回的是XML数据类似于“<a><b name="b"/></a>”,
接下来在javascript里解析XML数据,返回JSP。
过程是这样的:
首先,声明XMLDom,默认浏览器为IE,如果不行,则使用火狐
try{
this.XMLDOM = new ActiveXObject("Microsoft.XMLDOM");
}catch(e){
try{
this.XMLDOM = document.implementation.createDocument("", "", null);
}catch(e){
alert("'Microsoft.XMLDOM' created Error! " + e);
}
}
接下来,ajax调用后台方法,返回数据,,,,这个就略了,假如返回的是<a><b name="b"/></a>;
然后,javascript解析该数据,假如返回的数据变量是responseXML,
IE传统的方法就是使用刚才声明的XMLDOM,例如IE:XMLDOM.loadXML(responseXML),但是在火狐不支持,这就尴尬了,,,
经过查资料,火狐使用XMLDOM.load(responseXML),但是这里的responseXML,应该是一个XML文件的路径,而不是字符串类型的数据,,至少我测试的时候没有通过,,
接下来就找到了另外一种方式:
var oParser = new DOMParser();
var oXmlDom = oParser.parseFromString(xmlhttp.responseText,"text/xml");
这个问题就解决了,,,
然后就是解析的事了,,注意在获取节点属性的时候,格式是这样的:element.getAttribute("name");
IE以前是用element.attributes.getNamedItem("id").text,但是这里不支持
相关推荐
综上所述,实现JS在IE和火狐中读取本地XML的关键在于使用FileReader API读取文件内容,然后使用XMLHttpRequest或ActiveXObject进行异步数据处理。这种技术避免了弹出驱动提示,提高了用户体验。
对于IE浏览器,你需要这样操作: ```javascript if (window.ActiveXObject) { var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlString); } else { var parser...
分别针对ie和火狐分别作了对xml文档和xml字符串的解析,所有代码都注释掉了,想看哪部分功能,去掉注释就可以了。至于在ajax环境下解析xml,其实原理是一样的,只不过放在了ajax里,还是要对返回的xml进行解析。 ...
在JavaScript中,读取XML文件数据并以表格(Table)的形式显示是一种常见的数据处理方法,尤其在处理结构化数据时非常实用。本文将详细介绍如何实现这个功能,同时确保兼容Internet Explorer(IE)和Firefox等主流...
4. **火狐浏览器的注意点**:Firefox有时可能会在`load`事件触发前就返回了`dataURL`,这时我们需要确保图片已经完全加载后再进行处理。可以使用`img.complete`属性检查图片是否已加载。 ```javascript if (!img....
最近项目中用到了xml,需求是用户安装产品时先把一系列的数据保存到xml文件中,当执行到最后一步时才写入数据库,这样最大限度的减少了数据库的访问,于是不得不纠结在各浏览器的兼容性的问题(悲哀啊….) ...
通过在非IE浏览器上添加`Node.prototype.xml`的getter方法,我们可以在任何XMLNode上调用`.xml`来获取其字符串表示。这个方法不仅适用于整篇XML文档,也适用于XML文档的任意节点。对于其他浏览器,可能需要采用不同...
描述中提到“本地测试”意味着开发者可以在自己的机器上验证ie和火狐浏览器下的3D名片效果,确保兼容性和功能完整性。 综合上述,这个资源包包含了一个使用jQuery实现的3D效果网页名片。它可能利用了CSS3的3D变换...
建议使用IE7或火狐浏览器! 本程序使用了EXTJS3.3最新版本!并对EXTJS中原有的一些不适合大型项目使用的方法进行了改写,具体有: 1。全动态JS文件与CSS文件加载,具有避免重复加载的功能 2。对模块JSON进行了拓展...
这通常通过解析navigator.userAgent字符串来完成,通过寻找特定的标识符(如"MSIE"代表IE浏览器,"Firefox"代表火狐浏览器)来判断当前浏览器的类型。之后,我们才能决定如何绑定或解绑相应的事件处理函数。 ```...
// IE浏览器的请求方式 myRequest = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { // 火狐等现代浏览器的请求方式 myRequest = new XMLHttpRequest(); } else { alert(...
- **步骤**:在IE浏览器中测试(火狐浏览器没有缓存机制,而IE有缓存功能,可以更好地模拟实际应用场景)。 - **作用**:验证GET请求是否正常工作。 ##### 2.4 结果 - **预期**:成功获取服务器端返回的数据并在...
在这个案例中,特别提到了对火狐浏览器的支持。这可能涉及到对旧版IE浏览器的polyfill,或者使用像jQuery这样的库来简化跨浏览器的代码。 8. **性能优化**:为了避免频繁请求,可以设置延迟发送请求的机制,比如...
另一个解决办法是使用`addEventListener`或`attachEvent`(IE浏览器)来手动绑定事件处理函数,而不是直接在XMLHttpRequest对象上设置`onreadystatechange`属性。 此外,查看博文链接...
●在火狐浏览器下,后台会员管理点击 “进入会员中心”按钮,提示:不存在此会员。 ●设置会员组升级参数时,修改会员组的“用户可升级到的用户组”在修改显示时不对应。 ●后台会员管理修改会员信息时,用户密码...
- 代码在火狐、IE8、Chrome等浏览器下测试通过,说明开发过程中需要对不同浏览器进行兼容性测试。 - 具体实现中可能会遇到浏览器兼容性问题,通常需要额外的CSS规则或JavaScript代码来确保所有用户都能获得一致的...