`

JavaScript中读取xml,兼容火狐

阅读更多
不兼容火狐版
<script Language="JavaScript">
var HTML = "";
var space = "";
var blank = "  ";
function getSubject()
{
var xmlDoc;

if(window.ActiveXObject)
{
//获得操作的xml文件的对象
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load("tree.xml");
if(xmlDoc == null)
{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/Index.aspx';
return;
}
}
//解析xml文件,判断是否出错
if(xmlDoc.parseError.errorCode != 0)
{
alert(xmlDoc.parseError.reason);
return;
}
//获得根接点
var nodes = xmlDoc.documentElement.childNodes;
//得到根接点下共有子接点个数,并循环
for(var i=0; i<nodes.length; i++)
{
//如果接点名为 tree
if(nodes(i).nodeName == "tree")
{
readTree(nodes(i));
}
//如果接点名为 node
else if(nodes(i).nodeName == "node")
{
readNode(nodes(i));
}
}
//删除对象
delete(xmlDoc);
//显示HTML
window.show.innerHTML = HTML;
return;
}
//读Tree节点
function readTree(cI)
{
var nodes = cI.childNodes;
var menuHTML = space;
menuHTML += blank;
//得到超级链接
menuHTML += "<a href='";
//如果该节点的连接属性不为空,则连接
if(cI.selectNodes("link")(0).text != "")
{
menuHTML += cI.selectNodes("link")(0).text;
}
//否则为空链接
else
{
menuHTML += "#";
}
//目标
if(cI.selectNodes("target")(0).text != "")
{
menuHTML += " target='"+cI.selectNodes("target")(0).text;
menuHTML += "'";
}
//点击菜单事件,调用divshow(vid)函数
menuHTML += " onclick=javascript:divshow('"+cI.getAttribute("id")+"');";
//得到节点标题
menuHTML += " title='";
menuHTML += cI.selectNodes("title")(0).text;
//结束
menuHTML += "'>";
//得到节点的正文
menuHTML += cI.selectNodes("text")(0).text;
menuHTML += "</a><br>\n";
//将menuHTML设置添加到HTML字符串
HTML += menuHTML;
//得到该节点的属性值<span
HTML += "<div id='"+cI.getAttribute("id")+"' style='display:none'>\n";
for(var i=0; i<nodes.length; i++)
{
var tempImg = "";
tempImg += blank;
if(nodes(i).nodeName == "tree")
{
space += tempImg;
readTree(nodes(i));
space = "";
}
else if(nodes(i).nodeName == "node")
{
space += tempImg;
readNode(nodes(i));
}
}
HTML += "</div>\n";
return;
}
//读Node节点
function readNode(cI)
{
var nodeHTML = space;
nodeHTML += blank;
//设置超级链接
nodeHTML += "<a href='";
//得到连接地址
nodeHTML += cI.selectNodes("link")(0).text;
//目标
if(cI.selectNodes("target")(0).text != "")
nodeHTML += "' target='"+cI.selectNodes("target")(0).text;
//得到节点标题
nodeHTML += "' title='";
nodeHTML += cI.selectNodes("title")(0).text;
//结束
nodeHTML += "'>";
//得到节点的正文
nodeHTML += cI.selectNodes("text")(0).text;
nodeHTML += "</a><br>\n";
HTML += nodeHTML;
//HTML += "<div id='"+cI.getAttribute("id")+"'>";
space = "";
return;
}
//操作对象的显示还是隐藏效果
function divshow(vid)
{
if(document.all[vid].style.display == "none")
{
document.all[vid].style.display = "block";
}
else
{
document.all[vid].style.display = "none";
}
return;
}
</script>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS_XML</title>

<style type="text/css">
<!--
body
{
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
font-size: 9pt;
}
A
{
text-decoration:none;
font-family: "宋体";
font-size: 9pt;
COLOR:#000000;
}
-->
</style>

</head>
<body bgcolor="#EEEEEE" leftmargin="0" topmargin="0">
<div id=show></div>
</body>
<script>
getSubject()
</script>
</html>
兼容火狐版
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<script type="text/javascript" src="dtree.js"></script>
<script type="text/javascript">

var a=0;
var b=0;
var d = new dTree('d');
function getSubject()
{

d.add(0,-1,'My example tree');
var xmlDoc;
var type='IE'
//创建xml对象
if(navigator.userAgent.indexOf("MSIE")>0){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");    //IE对象
}else if(isFirefox=navigator.userAgent.indexOf("Firefox") > 0){
type='Firefox';
xmlDoc = document.implementation.createDocument("", "", null); //火狐对象
}else{
alert('为了你更好地浏览本页内容,请用IE或者火狐浏览器打开此页!');
return;
}
xmlDoc.async = false;   //关闭异步处理功能。
xmlDoc.load("tree.xml");   //加载xml文件
//解析xml文件,判断是否出错
if(xmlDoc.parseError.errorCode != 0)
{
alert(xmlDoc.parseError.reason);
return;
}
if(type=='IE')
{

}else if()

//获得根接点
var nodes = xmlDoc.documentElement.childNodes;
//得到根接点下共有子接点个数,并循环
for(var i=0; i<nodes.length; i++)
{

//如果接点名为 tree
if(nodes(i).nodeName == "node")
{
b=0;
readTree(nodes(i));
}
}
document.write(d);
d.openAll();

}

//读Tree节点
function readTree(cI)
{

var nodes = cI.childNodes;
var nodeId = cI.getAttribute("nodeId");
var parentId;
if(cI.parentNode.getAttribute("nodeId")==null)
{
parentId=0;
}else
{
parentId=cI.parentNode.getAttribute("nodeId");
}

var nodeName = cI.getAttribute("nodeName");
var url = cI.getAttribute("url");
d.add(nodeId,parentId,nodeName,url);
for(var i=0; i<nodes.length; i++)
{
readTree(nodes(i));
}
}
</script>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>JS_XML</title>

<style type="text/css">
    .dtree {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #666;
white-space: nowrap;
}
.dtree img {
border: 0px;
vertical-align: middle;
}
.dtree a {
color: #333;
text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
white-space: nowrap;
padding: 1px 2px 1px 2px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
color: #333;
text-decoration: underline;
}
.dtree a.nodeSel {
background-color: #c0d2ec;
}
.dtree .clip {
overflow: hidden;
}
    </style>

</head>
<body>
</body>
<script type="text/javascript">
getSubject()
</script>
</html>
分享到:
评论

相关推荐

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

    主要介绍了JS读取XML文件数据并以table形式显示数据的方法,涉及javascript针对xml节点操作及HTML表格操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    JavaScript XML操作 封装类

    最近研究XML 用JavaScript写了一个简单的XML读取的操作类发给大家分享一下 可兼容 IE 火狐 Safari Chrome6月30日下午 新修改了一下

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:&lt;!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*&gt; 说明: "&lt;!ELEMENT" 是元素的声明,说明你要定义的是一个元素; 声明后面的"DESCRIPTION",...

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

    ipn_validator JS 上的 IPN 验证器使用/读取 XML 文件 使用方法:在火狐浏览器中下载为zip,解压,修改xml文件,执行ipn.html。... 注意:现在仅适用于 Firefox。 Chrome 上存在跨源问题。 未在 IE 上测试。

    精通JavaScript (实例版)

    1.对于代码35.1.htm,使用Mozilla Firefox浏览器可直接运行,如果使用IE浏览器,需要在服务器端运行。 2.对于代码35.2.html,需要IIS+PHP+MySQL或Apache+PHP+MySQL环境支持 35.1.htm 读取XML文档 35.2....

    精通JavaScript动态网页编程实例版

    1.对于代码35.1.htm,使用Mozilla Firefox浏览器可直接运行,如果使用IE浏览器,需要在服务器端运行。 2.对于代码35.2.html,需要IIS+PHP+MySQL或Apache+PHP+MySQL环境支持 35.1.htm 读取XML文档 35.2....

    精通JavaScript

    Mozilla Firefox 1.5.0.3或更高版本 服务器采用IIS5.1 或以上版本 数据库使用MS Access 2000以上 2.本书所附光盘实例代码: 第1章(\第1章) 查看1.2.htm中noscript显示效果的方法如下: 1.将该实例复制到C:\...

    JavaScript应用177例

    代码说明:本章代码只能在Mozilla Firefox中运行。 7.1.htm 事件流 7.2.htm DOM2鼠标事件 7.3.htm 取消默认动作 7.4.htm 创建DOM2事件 第8章(\cha08) 8.1.htm 页面...

    Ajax基础教程(扫描版)

    7.2.1 使用firefox javascript console 189 7.2.2 使用microsoft script debugger 190 7.2.3 使用venkman 192 7.3 小结 207 第8章 万事俱备 209 8.1 模式介绍 209 8.1.1 实现褪色技术 209 8.1.2 实现自动刷新...

    JSP+Ajax 添加、删除多选框

    本例是采用JSP + Ajax + 文本来演示多选、全选,添加、删除、更新checkbox多选...4, 本例子在win32,Red hat Linux 9下 jdk1.5,Tomcat 5.0,Apache 2.5下调试通过,同时兼容Firefox 1.0,Opera 8.0,IE6。 本例子的优点: 1

    formatEditor:Javascript编辑器,用于进行编程练习的交换格式

    需要Firefox或Chrome 测试套件不能以Chrome 77开头。 去做: 更新文件 support在文件引用中具有相同名称的支持文件 编写XML时删除中间层类(可能还读取) 针对测试XSD验证生成的XML文件 收起描述 如果文件扩展...

    【卷一/共两卷】AJAX实战pdf高清版90M

    A.5 安装:Firefox扩展 A.6 资源 附录B 面向对象程序员Javascript指南 B.1 JavaScipt不是Java B.2 JavaScript中的对象 B.2.1 创建即时对象 B.2.2 构造函数、类和原型 B.2.3 扩展内建类 B.2.4 原型的继承 B.2.5 ...

    [完整][中文][WEB安全测试].(美)霍普.扫描版.pdf

    2.2 安装Firefox扩展 30 2.3 安装Firebug 31 2.4 安装OWASP的WebScarab 32 2.5 在Windows上安装Perl及其软件包 33 2.6 在Linux, Unix或OS X上安装Perl和使用CPAN 34 2.7 安装CAL9000 35 2.8 安装ViewState Decoder ...

    WEB安全测试

    2.1 安装Firefox 29 2.2 安装Firefox扩展 30 2.3 安装Firebug 31 2.4 安装OWASP的WebScarab 32 2.5 在Windows上安装Perl及其软件包 33 2.6 在Linux, Unix或OS X上安装Perl和使用CPAN 34 2.7 安装CAL9000 35 2.8 ...

    NTKO文档在线编辑控件4.0.1.2

    V2,3,2,0版本之后,NTKO OFFICE文档控件支持直接从ODBC数据源读取文档内容,或者将文档内容存入ODBC数据源。这为C/S结构下创建共享的办公系统,文档管理,知识管理解决方案提供了更强大的接口。 8 状态栏,智能Web...

    jquery-1.1.3 效率提高800%

    选择器速度提升 选择器的速度大幅度提高了,下表为jQuery1.1.2和1.1.3的选择器速度对比,提高了8倍多 Browser jQuery 1.1.2 jQuery 1.1.3 % Improvement IE 6 4890ms 661ms 740% Firefox 2 5629ms 567...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

     Inter及其兼容计算机,Pentium 166Mz或者更高处理器或DEC Alpha和其兼容系统。  (2)内存(RAM)  企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。  (3)硬盘空间  完全安装(Full)...

    cuteEditor6.0

    跨浏览器,跨平台的所见即所得在线html编辑器 &lt;br/&gt;兼容市面上最流行的ie5.5+,firefox1.0+,mozilla1.3+, netscape7+和Safari(1.3+)浏览器,并且包括Mac和Linux操作平台。 CuteEditor...

    asoft签到管理系统tykq3.5_build20110125

    8、系统浏览器兼容性调整完毕,现在您可以在IE、firefox和遨游、腾讯TT等浏览器上正常使用本程序了 [2009-5-10] v3.1 beta1 1、部分功能ajax化 2、验证机制cookies化 3、界面UI更换 [2009-1-7] v 3.0 PACK3 ...

Global site tag (gtag.js) - Google Analytics