`

解决js在火狐浏览器中的读取xml属性错误

阅读更多

在出ie浏览器之外的浏览器在读取xml  会将空格  换行  都读取成节点
所以我们必须做出判断



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>city.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<h1> 解析xml文件实现省市级联下拉菜单 </h1>
<div> <span>
  <select id="province" name="province">
    <option> 请选择省 </option>
  </select>
  </span> <span>
  <select id="cities" name="city">
    <option> 请选择相应省下面的市 </option>
  </select>
  </span> </div>
</body>
</html>
<script>
window.onload = function() {
var xmlDom;
var bool_IE = (window.ActiveXObject ? true : false);

if (bool_IE) {
//针对的是IE浏览器 创建一个空的微软 XML 文档对象
xmlDom = new ActiveXObject("Microsoft.XMLDOM");
} else {

//在 Firefox 及其他浏览器中的 XML 解析器
//创建一个空的 XML 文档对象。
xmlDom = document.implementation.createDocument("", "", null);

}

//关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行
xmlDom.async = false;

//解析器加载名为 "xxx.xml" 的 XML 文档、
xmlDom.load("city.xml");

//获取xml文件的根节点
var root = xmlDom.documentElement;

//获取根节点下面的省节点
var provinces = root.childNodes;

var province = document.getElementById("province");
for ( var i = 0; i < provinces.length; i++) {
//获取省节点的name属性的值
//为了兼容火狐浏览器 添加  ==============>provinces[i].nodeType==1
if (provinces[i].nodeType == 1) {
var name = provinces[i].getAttribute("name");
;
//创建一个option
var opt = document.createElement("option");
//为option添加文本
opt.appendChild(document.createTextNode(name));
//添加到父节点中
province.appendChild(opt);
}

}

var cities = document.getElementById("cities");
province.onchange = function() {
var pce = document.getElementById("province");
var opts = pce.options;
var opt1 = opts[pce.selectedIndex];
var name = opt1.innerHTML;
for ( var i = 0; i < provinces.length; i++) {
//获取省节点的name属性的值
var name1 = "";
if (provinces[i].nodeType == 1) {
name1 = provinces[i].getAttribute("name");
if (name == name1) {
cities.length = 1;//每次改变的时候清空
var pros = provinces[i];
var citys = pros.childNodes;

for ( var j = 0; j < citys.length; j++) {
//创建一个option
if (citys[j].nodeType == 1) {
var opt1 = document.createElement("option");
//为option添加文本
opt1
.appendChild(document
.createTextNode(citys[j].firstChild.nodeValue));
//添加到父节点中
cities.appendChild(opt1);
}
}
}
}

}

}

}
</script>
//xml中文件

======================================================================================


<?xml version="1.0" encoding="UTF-8"?>
<cities>
<province name="北京">
<city>大兴</city>
<city>昌平</city>
<city>朝阳</city>
<city>海淀</city>
<city>东城</city>
<city>西城</city>
</province>
<province name="河北">
<city>石家庄</city>
<city>保定</city>
<city>邢台</city>
<city>张家口</city>
<city>廊坊</city>
<city>承德</city>
</province>
<province name="河南">
<city>郑州</city>
<city>安阳</city>
<city>平顶山</city>
<city>开封</city>
<city>商丘</city>
<city>洛阳</city>
</province>

</cities>


分享到:
评论
2 楼 zpx138332 2011-03-21  
1 楼 yinghuayu1324117 2011-03-21  
前卫啊,不错。。。。

相关推荐

    JS读取本地XML(支持IE和火狐)

    在JavaScript中,读取本地XML文件是一个常见的需求,特别是在处理数据交换或页面动态加载内容时。这个场景下,我们关注的重点是如何在不依赖用户权限提示的情况下,使用JS在Internet Explorer(IE)和Firefox这两个...

    火狐浏览器插件 火狐插件

    火狐浏览器插件是Firefox浏览器的一种扩展功能,它允许用户自定义浏览器的行为,增强浏览体验。这些插件通常由开发者编写,使用JavaScript、CSS和HTML等技术构建,以实现特定的功能,如网页拦截、广告过滤、隐私保护...

    JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐) .zip

    在JavaScript(JS)中,处理XML文件数据并将其展示在HTML表格中是一项常见的任务,尤其在前后端分离不那么明显的年代。本示例主要讲解如何使用JavaScript读取XML文件,并在浏览器环境中,无论是在Internet Explorer...

    精伦身份证阅读器 网页版OCX 二次开发包

    值得注意的是,此身份证阅读器控件宣称支持火狐浏览器。这在ActiveX技术中是不常见的,因为ActiveX主要是在Internet Explorer中运行。然而,这可能意味着控件使用了一些跨浏览器的技术,如NPAPI(Netscape Plugin ...

    js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)

    在IE浏览器中,我们使用ActiveXObject来创建XMLDOM对象: ```javascript if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); } ``` 而在Firefox和其他遵循DOM标准的浏览器中,我们...

    JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)

    在JavaScript中,读取XML文件数据并以表格(Table)的形式显示是一种常见的数据处理方法,尤其在处理结构化数据时非常实用。本文将详细介绍如何实现这个功能,同时确保兼容Internet Explorer(IE)和Firefox等主流...

    在Firefox中通过AJAX跨域访问Web资源

    标题中的“在Firefox中通过AJAX跨域访问Web资源”是指使用Asynchronous JavaScript and XML (AJAX)技术在Mozilla Firefox浏览器中实现跨域数据请求。跨域是由于浏览器的同源策略(Same-origin policy)限制,它阻止...

    ipn_validator:JS 上的 IPN 验证器使用读取 XML 文件

    使用方法:在火狐浏览器中下载为zip,解压,修改xml文件,执行ipn.html。 如果 xml 文件有 IPM (NumIdent) 错误,它们将被显示,否则只显示一切正常的消息。 截屏: 注意:现在仅适用于 Firefox。 Chrome 上存在跨...

    上传图片获取图片信息(兼容IE和火狐)

    4. **火狐浏览器的注意点**:Firefox有时可能会在`load`事件触发前就返回了`dataURL`,这时我们需要确保图片已经完全加载后再进行处理。可以使用`img.complete`属性检查图片是否已加载。 ```javascript if (!img....

    真正实现ajax上传文件 兼容IE6789火狐谷歌世界之窗

    对于不支持FormData的旧版IE浏览器,我们需要依赖IFrame和ActiveXObject。IFrame可以作为一个隐藏的窗口,用于提交表单,而ActiveXObject是IE特有的,可以模拟HTTP请求。创建一个隐藏的IFrame,将表单目标设置为该...

    动易专业版——Upgrade_SiteFactory.Professional_2.5.2.0-2.5.3.0的升级包

    ●在火狐浏览器下,后台会员管理点击 “进入会员中心”按钮,提示:不存在此会员。 ●设置会员组升级参数时,修改会员组的“用户可升级到的用户组”在修改显示时不对应。 ●后台会员管理修改会员信息时,用户密码...

    你是如何开始能写python爬虫.docx

    - **XPath Checker**:一个火狐浏览器插件,用于测试XPath表达式的正确性。需要注意的是,生成的XPath可能是基于绝对路径,对于动态变化的元素可能会导致错误。 - **HTTPFox**:一款火狐浏览器插件,用于监控HTTP...

    jquery实现选择图片预览,兼容各大主流浏览器

    在网页开发中,图片预览是一项常见的需求,它允许用户在上传图片之前先查看选定的图片,提升用户体验。本文将详细介绍如何使用jQuery实现一个兼容各大主流浏览器(如谷歌、IE、360浏览器、火狐等)的图片预览功能。 ...

    JSP课程设计--在线聊天

    6. **火狐浏览器**:由于其对Web标准的良好支持,Firefox被推荐用于这个项目的测试和使用。浏览器兼容性是任何Web应用都需要考虑的问题,确保在多种环境下正常运行是必要的。 在压缩包文件`chatroom`中,可能包含了...

    Mozilla,firefox 扩展学习

    Mozilla和Firefox扩展开发是Web开发领域的一个重要分支,它允许开发者为火狐浏览器定制功能,增强用户体验或提供特定服务。本文将深入探讨Mozilla扩展的基本概念、开发环境搭建、API使用以及实战示例。 一、Mozilla...

    Firefox附加组件开发者指南

    - **属性声明的替代CSS**:除了使用CSS之外,还可以在XUL元素中直接声明样式属性。 - **文件类型对应的图标**:为不同的文件类型分配图标。 - **微调按钮**:用于调整数值的按钮。 - **滑动条**:用于选择一个范围内...

    DOCTYPE html PUBLIC.doc

    7. **浏览器兼容性**:这个例子中的代码考虑了火狐(Firefox)和IE浏览器的兼容性,使用的是XHTML标准,同时JavaScript代码也是通用的,可以在多种浏览器环境中运行。 总结来说,这个HTML页面展示了如何使用HTML、...

    Art2008CMS 7.0 GBK.rar

    15、修复后台及部分标签在火狐浏览器,GoogleChrome浏览器中显示错位问题; 16、修复首页自动更新功能; 17、修复专题页面在SQL数据库下出错问题; 18、修复文章上下条标签,相关文章标签,从js调用改成直接读取,...

    Art2008CMS 7.0 UTF-8.rar

    15、修复后台及部分标签在火狐浏览器,GoogleChrome浏览器中显示错位问题; 16、修复首页自动更新功能; 17、修复专题页面在SQL数据库下出错问题; 18、修复文章上下条标签,相关文章标签,从js调用改成直接读取,...

Global site tag (gtag.js) - Google Analytics