我已经创建了一个XML文件,并且正在尝试使用我的Web浏览器访问它。 当我使用IE浏览器时,脚本工作得很好,一切正常,但是当我尝试在另一个浏览器中打开它时,它不起作用。 经过研究,我了解到它来自于我在JavaScript中与Microsoft连接的第一行中实例化的ActiveX内容。
这就是为什么我发现了另一个代码,会自动检查浏览器的性质:用于检测浏览器版本的XML/Javascript
<script type="text/javascript">
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "emp.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
//function loadXML(xmlFile)
//{
//xmlDoc.async="false";
//xmlDoc.onreadystatechange=verify;
//xmlDoc.load(xmlFile);
//xmlObj=xmlDoc.documentElement;
//}
其实,就在函数的最后两行是足以载入XML文件。前两行是为了确保我们稍后可能用来操作XML文件数据的JavaScript函数不对未初始化的对象执行任何函数。因此调用函数* () *。
<?php
//function verify()/
//{
// 0 Object is not initialized
// 1 Loading object is loading data
// 2 Loaded object has loaded data
// 3 Data from object can be worked with
// 4 Object completely initialized
//if (xmlDoc.readyState != 4)
// {
// return false;
//}
//}
?>
loadXML('emp.xml');
alert(xmlDoc.childNodes(0).firstChild.text);
alert(xmlDoc.childNodes(3).childNodes(1).firstChild.text);
我得到JScript运行时错误访问被拒绝...该怎么办?
MY NEW CODE:
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://www.multimediaprof.com/test/emp.xml",true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
alert(xmlDoc.childNodes[1].firstChild.text);
</script>
</head>
</html>
是JQUERY
答案,我该如何实现呢?
我猜你从不同的环节采取的事情,如果我没有记错。请阅读以下链接:
linguini
2012-03-14 08:33:40
你给我的第二个链接是我开始使用的第二个链接,它不适用于除IE以外的任何浏览器,这就是为什么我试图将两个不同的链接放在一起尝试使它在任何浏览器上都能正常工作,即使我尝试与包含测试功能的链接,JS运行时错误发生,它不会在任何浏览器上运行......任何想法? – 2012-03-14 08:37:31
在这里你有一个非常简单的例子,http://www.w3schools.com/dom/dom_loadxmldoc.asp。请记住,如何在本地加载文件。请验证文件'xmlDoc = loadXMLDoc(“books.xml”);'你可以给这样的'文件://C:/文件' – linguini 2012-03-14 08:48:46