下面的文件说来也奇怪,搞了两天了也没有搞出个门道出来,所以想请大家帮忙
index.html文件在:http://127.0.0.1/index.html 下面用fierfox浏览器下执行报错(iis为web服务器)
index.html文件在:http://127.0.0.1:81/index.html 下面用fierfox浏览器下执行报错(apach为web服务器)
index.html文件在:file:///F:/php/index.html 也就是说不经过web服务器,直接用fierfox浏览器运行,不报错
index.html内容如下:<html>
<head>
<title>Test</title>
<script language = "javascript" >
function XmlDom()
{
if(window.ActiveXObject)
{
var arrSignatures = ["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"];
for(var i=0; i<arrSignatures.length; i++)
{
try
{
var oXmlDom = new ActiveXObject(arrSignatures[i]);//创建IE中的oXmlDom实例
return oXmlDom;
}
catch(exception)
{
//ignore
}
}
throw new Error("Your browser doesn't support an XML DOM object!!!!!");
}
else if(document.implementation && document.implementation.createDocument)
{
var oXmlDom = document.implementation.createDocument("","",null);//创建Mozilla中的oXmlDom实例
oXmlDom.parseError =
{
valueOf:function(){return this.errorCode},
toString:function(){return this.errorCode.toString()}
};
oXmlDom.__initError__();
oXmlDom.addEventListener("load",function()
{
this.__checkForErrors__();
this.__changeReadyState__(4);
},false);
return oXmlDom;
}
else
{
throw new Error("Your browser doesn't support an XML DOM object!!!!!");
}
}
if(document.implementation && document.implementation.createDocument)//初始化Mozilla信息
{
Document.prototype.readState = 0;//创建加载状态特性
Document.prototype.onreadystatechange = null;//创建加载事件
Document.prototype.__changeReadyState__ = function(iReadyState)//加载事件函数
{
this.readyState = iReadyState;
if(typeof this.onreadystatechange == "function")
{
this.onreadystatechange();
}
}
Document.prototype.__initError__ = function()//初始化Mozilla的错误信息
{
this.parseError.errorCode = 0;
this.parseError.filepos = -1;
this.parseError.line = -1;
this.parseError.linepos =-1;
this.parseError.reason = null;
this.parseError.srcText = null;
this.parseError.url = null;
}
Document.prototype.__checkForErrors__ = function()//检查错误信息
{
if(this.documentElement.tagName == "parsererror")
{
var reError = />[\s\S]*?>([\s\S]*?)位置[\s\S]*?([\s\S]*?)行[\s\S]*?(\d+)[\s\S]*?列[\s\S]*?(\d+)[\s\S]*?<sourcetext>([\s\S]*?)<\/sourcetext>/;
reError.test(this.xml);
this.parseError.errorCode = -999999;
this.parseError.reason = RegExp.$1;
this.parseError.url = RegExp.$2;
this.parseError.line = parseInt(RegExp.$3);
this.parseError.linepos = parseInt(RegExp.$4);
this.parseError.srcText = RegExp.$5;
}
}
Document.prototype.loadXML = function(sXml)//添加loadXML方法,以便和IE实现一样
{
this.__initError__();
this.__changeReadyState__(1);
var oParser = new DOMParser();
var oXmlDom = oParser.parseFromString(sXml,"text/xml");
while(this.firstChild)
{
this.removeChild(this.firstChild);
}
for(var i=0; i<oXmlDom.childNodes.length; i++)
{
var oNewNode = this.importNode(oXmlDom.childNodes[i],true);
this.appendChild(oNewNode);
}
this.__checkForErrors__();
this.__changeReadyState__(4);
}
Document.prototype.__load__ = Document.prototype.load;//更新Mozilla的load信息
Document.prototype.load = function(sRUL)//更新Mozilla的load信息
{
this.__initError__();
this.__changeReadyState__(1);
this.__load__(sRUL);
}
Node.prototype.__defineGetter__("xml",function()//为每个节点添加xml特性,以便和IE实现一样
{
var oSerializer = new XMLSerializer();
return oSerializer.serializeToString(this,"text/xml");
});
Element.prototype.selectNodes = function (sXPath)//模仿IE中XPath中的selectNode
{
var oEvaluator = new XPathEvaluator();
var oResult = oEvaluator.evaluate(sXPath, oXmlDom.documentElement, null,
XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var aNodes = new Array;
if (oResult != null)
{
var oElement = oResult.iterateNext();
while(oElement)
{
aNodes.push(oElement);
oElement = oResult.iterateNext();
}
}
return aNodes;
}
Element.prototype.selectSingleNode = function (sXPath)//模仿IE中XPath中的selectSingleNode
{
var oEvaluator = new XPathEvaluator();
var oResult = oEvaluator.evaluate(sXPath, oXmlDom.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
if (oResult != null)
{
return oResult.singleNodeValue;
}
else
{
return null;
}
}
}
var oXmlDom = new XmlDom();
oXmlDom.onreadystatechange = function()
{
if(oXmlDom.readyState == 4)
{
if(oXmlDom.parseError != 0)
{
var oError = oXmlDom.parseError;
alert("An error occurred:\nError Code:" + oError.errorCode + "\n" + "Line: " + oError.line + "\n" + "reason: " + oError.reason);
}
else
{
var iNodes = oXmlDom.documentElement.selectSingleNode("student/sex/name");
alert(iNodes.firstChild.nodeValue);
}
}
}
oXmlDom.load("test.xml");
</script>
</head>
<body>
</body>
</html>
index.html文件在:http://127.0.0.1/index.html 下面用fierfox浏览器下执行报错(iis为web服务器)
index.html文件在:http://127.0.0.1:81/index.html 下面用fierfox浏览器下执行报错(apach为web服务器)
index.html文件在:file:///F:/php/index.html 也就是说不经过web服务器,直接用fierfox浏览器运行,不报错
index.html内容如下:<html>
<head>
<title>Test</title>
<script language = "javascript" >
function XmlDom()
{
if(window.ActiveXObject)
{
var arrSignatures = ["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"];
for(var i=0; i<arrSignatures.length; i++)
{
try
{
var oXmlDom = new ActiveXObject(arrSignatures[i]);//创建IE中的oXmlDom实例
return oXmlDom;
}
catch(exception)
{
//ignore
}
}
throw new Error("Your browser doesn't support an XML DOM object!!!!!");
}
else if(document.implementation && document.implementation.createDocument)
{
var oXmlDom = document.implementation.createDocument("","",null);//创建Mozilla中的oXmlDom实例
oXmlDom.parseError =
{
valueOf:function(){return this.errorCode},
toString:function(){return this.errorCode.toString()}
};
oXmlDom.__initError__();
oXmlDom.addEventListener("load",function()
{
this.__checkForErrors__();
this.__changeReadyState__(4);
},false);
return oXmlDom;
}
else
{
throw new Error("Your browser doesn't support an XML DOM object!!!!!");
}
}
if(document.implementation && document.implementation.createDocument)//初始化Mozilla信息
{
Document.prototype.readState = 0;//创建加载状态特性
Document.prototype.onreadystatechange = null;//创建加载事件
Document.prototype.__changeReadyState__ = function(iReadyState)//加载事件函数
{
this.readyState = iReadyState;
if(typeof this.onreadystatechange == "function")
{
this.onreadystatechange();
}
}
Document.prototype.__initError__ = function()//初始化Mozilla的错误信息
{
this.parseError.errorCode = 0;
this.parseError.filepos = -1;
this.parseError.line = -1;
this.parseError.linepos =-1;
this.parseError.reason = null;
this.parseError.srcText = null;
this.parseError.url = null;
}
Document.prototype.__checkForErrors__ = function()//检查错误信息
{
if(this.documentElement.tagName == "parsererror")
{
var reError = />[\s\S]*?>([\s\S]*?)位置[\s\S]*?([\s\S]*?)行[\s\S]*?(\d+)[\s\S]*?列[\s\S]*?(\d+)[\s\S]*?<sourcetext>([\s\S]*?)<\/sourcetext>/;
reError.test(this.xml);
this.parseError.errorCode = -999999;
this.parseError.reason = RegExp.$1;
this.parseError.url = RegExp.$2;
this.parseError.line = parseInt(RegExp.$3);
this.parseError.linepos = parseInt(RegExp.$4);
this.parseError.srcText = RegExp.$5;
}
}
Document.prototype.loadXML = function(sXml)//添加loadXML方法,以便和IE实现一样
{
this.__initError__();
this.__changeReadyState__(1);
var oParser = new DOMParser();
var oXmlDom = oParser.parseFromString(sXml,"text/xml");
while(this.firstChild)
{
this.removeChild(this.firstChild);
}
for(var i=0; i<oXmlDom.childNodes.length; i++)
{
var oNewNode = this.importNode(oXmlDom.childNodes[i],true);
this.appendChild(oNewNode);
}
this.__checkForErrors__();
this.__changeReadyState__(4);
}
Document.prototype.__load__ = Document.prototype.load;//更新Mozilla的load信息
Document.prototype.load = function(sRUL)//更新Mozilla的load信息
{
this.__initError__();
this.__changeReadyState__(1);
this.__load__(sRUL);
}
Node.prototype.__defineGetter__("xml",function()//为每个节点添加xml特性,以便和IE实现一样
{
var oSerializer = new XMLSerializer();
return oSerializer.serializeToString(this,"text/xml");
});
Element.prototype.selectNodes = function (sXPath)//模仿IE中XPath中的selectNode
{
var oEvaluator = new XPathEvaluator();
var oResult = oEvaluator.evaluate(sXPath, oXmlDom.documentElement, null,
XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var aNodes = new Array;
if (oResult != null)
{
var oElement = oResult.iterateNext();
while(oElement)
{
aNodes.push(oElement);
oElement = oResult.iterateNext();
}
}
return aNodes;
}
Element.prototype.selectSingleNode = function (sXPath)//模仿IE中XPath中的selectSingleNode
{
var oEvaluator = new XPathEvaluator();
var oResult = oEvaluator.evaluate(sXPath, oXmlDom.documentElement, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
if (oResult != null)
{
return oResult.singleNodeValue;
}
else
{
return null;
}
}
}
var oXmlDom = new XmlDom();
oXmlDom.onreadystatechange = function()
{
if(oXmlDom.readyState == 4)
{
if(oXmlDom.parseError != 0)
{
var oError = oXmlDom.parseError;
alert("An error occurred:\nError Code:" + oError.errorCode + "\n" + "Line: " + oError.line + "\n" + "reason: " + oError.reason);
}
else
{
var iNodes = oXmlDom.documentElement.selectSingleNode("student/sex/name");
alert(iNodes.firstChild.nodeValue);
}
}
}
oXmlDom.load("test.xml");
</script>
</head>
<body>
</body>
</html>
解决方案 »
- 关于include的问题非用一项目 紧急!!!!!!!!!!!高手帮忙
- iText生成RTF文档 首页不显示页眉页脚
- 用Myeclipse导入cvs工程时出现connection timed out
- 向数据库添加记录的问题!
- jsp+mysql怎么上传附件阿?
- 类似www.xxx.com?topic/new的请求怎么实现(参数路径化)
- 关于request.getSession()的问题
- jsp调试出错,请指教
- 100分求文件存储到ORACEL
- 求助:那为大大帮帮忙
- 今天遇到这么个错误,登陆后台证明已经连接上数据库了,但是当我点击其中某项功能的时候报错:The Network Adapter could not establish the connection,大家有知道的跟我说一声!谢谢!
- struts2项目运行时的问题
楼主【renqiang_888】截止到2008-07-29 10:19:49的历史汇总数据(不包括此帖):
发帖的总数量:46 发帖的总分数:998 每贴平均分数:21
回帖的总数量:44 得分贴总数量:5 回帖的得分率:11%
结贴的总数量:45 结贴的总分数:898
无满意结贴数:2 无满意结贴分:40
未结的帖子数:1 未结的总分数:100
结贴的百分比:97.83 % 结分的百分比:89.98 %
无满意结贴率:4.44 % 无满意结分率:4.45 %
值得尊敬
<root>
<student>
<name>张三</name>
<age>3</age>
<sex>男</sex>
</student>
<student>
<name>李四</name>
<age>4</age>
<sex>
<name>真的不知道名字</name>
</sex>
</student>
<student>
<name>王五</name>
<age>5</age>
<sex>
<name>不知道名字</name>
</sex>
<sex>
<name>也不知道名字</name>
</sex>
</student>
</root>
报错图片如下:
修改一下你web发布目录下xml和html的相对路径。
lz你有必要检查下你的服务器配置了...- -!apache2.2.9+firefox2.0.16
没问题,一切正常.弹出一个"真的没有名字"对话框if(this.documentElement.tagName == "parsererror")
这句话在找不到test.xml时才会报错...lz你那个xml文件是不是放的地方有问题啊?
您用firefox浏览器运行脚本,并且必须安装firebug之后,错话才能出来.
我把程序放在了:http://zzjxyh.cn/test/index.html大家可以访问看一下,
源码和我在一楼发的源码是一样的,大家看一下报什么错误
firefox读取时候的问题。。?
问题帮你找到了...是ff3的firebug的问题..它导致了某些属性识别问题(这里我也不知到怎么表达)打个最简单的比方firstChild这个属性,(你用的this.documentElement也是这问题),在你卸载后(仅仅禁用不行),它能正确找到相应node,但是一旦装有firebug后就会有问题(仅限于ff3的firebug,ff2的没问题),会提示无此属性在ff的论坛里也有人提了相应问题...见下
http://support.mozilla.com/tiki-view_forum_thread.php?locale=zh-TW&comments_parentId=90503&forumId=1