gpt4 book ai didi

javascript - 用于检测浏览器版本的 XML/Javascript

转载 作者:行者123 更新时间:2023-11-30 18:30:46 36 4
gpt4 key购买 nike

我创建了一个 XML 文件,并尝试使用我的网络浏览器访问它。当我使用 IE 时,该脚本运行良好,一切正常,但当我尝试在其他浏览器中打开它时,它不起作用。经过研究,我了解到它来 self 在与 Microsoft 连接的 JavaScript 的第一行中实例化的 ActiveX 内容。
这就是为什么我找到了另一个应该自动检查浏览器性质的代码:

<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 函数不会对未初始化的对象执行任何函数。因此函数 *verify()* 被调用。

<?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 运行时错误访问被拒绝...该怎么办?

我的新代码:

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 是答案吗,我该如何实现它?

最佳答案

问题是您正试图通过 file:// 协议(protocol)访问计算机上的文件。这是一种安全风险,大多数浏览器都不允许这样做。

此问题的解决方案是将您的文件托管在本地或在线服务器上。

如果您使用的是 Google Chrome,您可以使用 --allow-file-access-from-files 标志运行它以使其正常工作。

编辑:我认为你这里有语法错误:

alert(xmlDoc.childNodes(0).firstChild.text);

childNodes 对象是一个数组,而不是一个函数。因此,应该使用方括号[],而不是圆括号()

EDIT2:如果您使用的是 jQuery,语法如下:

$.get("file.xml", function(data){
//Your data is accessible through the data variable here!
console.log("Data Loaded: " + data);
});

更多文档:http://api.jquery.com/jQuery.get/

关于javascript - 用于检测浏览器版本的 XML/Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9698162/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com