不兼容火狐版
<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>
分享到:
相关推荐
### JavaScript读取XML文件的方法详解 #### 一、引言 在现代Web开发中,XML(可扩展标记语言)作为一种轻量级的数据交换格式,在早期的Web应用中扮演着重要的角色。JavaScript作为前端的主要编程语言之一,具备强大...
这个"JS读取XML例子(兼容IE和FF).rar"压缩包包含了一个示例,展示了如何在不依赖任何插件的情况下,使用JavaScript在Internet Explorer(IE)和Firefox(FF)等浏览器中读取XML文件。下面我们将详细探讨JavaScript...
本文将详细介绍如何使用JavaScript读取XML文件以及如何获取文件中的特定内容。 #### JavaScript与XML交互基础 1. **创建XMLHttpRequest对象**: - 首先,需要创建一个`XMLHttpRequest`对象来发送HTTP请求。这个...
- 示例中提到了IE和火狐(Firefox)浏览器,这意味着代码在编写时需要考虑到不同浏览器对XMLHttpRequest对象的实现可能不同,因此需要进行相应的适配。 具体实现步骤如下: - 定义一个函数loadXMLDoc,它负责读取...
这个场景下,我们关注的重点是如何在不依赖用户权限提示的情况下,使用JS在Internet Explorer(IE)和Firefox这两个浏览器中读取XML文件。本文将详细介绍实现这一功能的技术要点。 首先,我们需要了解...
在JavaScript中,读取XML文件有几种方法: 1. **本地文件读取**:在现代浏览器中,可以使用`FileReader` API来读取本地XML文件。用户通过`<input type="file">`选择文件后,我们可以监听`change`事件,获取选中的...
本方案利用JavaScript(JS)和Extensible Markup Language(XML)来实现这一功能,同时兼容Internet Explorer(IE)、Firefox以及Opera这三种主流浏览器。 首先,我们要理解JS(JavaScript)的作用。JavaScript是一...
总结来说,这个例子展示了如何使用AJAX在Chrome和Firefox中读取XML数据,并将其展示在网页上。对于开发者而言,理解AJAX和XML的结合使用是构建交互式Web应用的关键技能之一。同时,要时刻关注浏览器兼容性,确保代码...
虽然`XMLHttpRequest`通常用于与服务器进行异步通信,但在某些情况下,如在本地环境中,也可以通过创建一个`file:`协议的URL来读取XML文件。不过,这种方式在现代浏览器中由于同源策略限制,已经被废弃,且不支持...
在这个“JS节日倒计时器”项目中,开发者利用JS实现了一个功能,可以显示到特定节日的倒计时,同时兼容Firefox和Internet Explorer(IE)两种浏览器。这种跨浏览器的兼容性对于提升用户体验至关重要,因为不同的用户...
- 描述中提到只支持IE,这是因为旧版本的IE(尤其是IE8及以下)使用了ActiveXObject来处理XML,而现代浏览器如Chrome、Firefox和QQ浏览器更倾向于使用DOMParser和XMLHttpRequest。因此,确保代码兼容性是必要的,...
6. **浏览器兼容性**:示例代码使用了ActiveXObject,这是Internet Explorer特有的,对于其他浏览器如Firefox、Chrome、Safari等,需要使用`XMLHttpRequest`的非IE实现。在现代JavaScript开发中,通常会使用`fetch` ...
本文将详细探讨如何在JavaScript中操作XML文件,并确保代码在Firefox和IE之间具有良好的兼容性。 1. **创建XML对象**: 在JavaScript中,可以使用`ActiveXObject`(仅适用于IE)或`DOMParser`(通用方法)来创建...
在Firefox中,JavaScript读取XML文件的方法与Internet Explorer(IE)有所不同,因为Firefox不支持IE特有的ActiveXObject。本文将详细讲解两种在Firefox中通过JavaScript获取并处理XML文档的方法。 1. 使用`...
1. **DOMParser API**:这是W3C标准的一部分,适用于所有现代浏览器,包括Chrome、Firefox、Safari和Edge等。我们可以创建一个DOMParser实例,然后使用`parseFromString()`方法解析XML字符串。 ```javascript let ...
在Firefox中,JavaScript可以用来操作XML DOM。以下是一些关键步骤和概念: 1. **创建XML对象**:首先,你需要创建一个XMLDocument对象来加载XML数据。这可以通过`XMLHttpRequest`对象或`DOMParser`对象实现。 - ...
"JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器"这一技术主题,聚焦于如何使用JavaScript(JS)在各种浏览器环境下处理Excel文件,包括古老的Internet Explorer(IE)、Firefox以及Chrome。下面我们将深入探讨这...