抱歉,如果这是基本的,我是一名 C++ 开发人员,负责创建一个网页...
我们使用相机,我尝试从相机下载响应以了解它具有哪些功能。然后我尝试提取这些功能,并将我的 div 元素设置为可见或不可见。
function readAlarmReactions()
{
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (parseXML(xhttp.responseXML, 'Beep') == 'false')
{
document.getElementById("Beep").style.display = "none";
}
}
};
xhttp.open("GET", "http://172.19.50.231/ISAPI/Event/triggersCap", true);
xhttp.send();
}
function parseXML(xml, request) {
var path = "/EventTriggersCap/isSupport" + request;
if (xml.evaluate) {
var nodes= xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result = nodes.iterateNext();
if (result) {
return result.childNodes[0].nodeValue;
}
return 'false';
}
return 'false';
}
当我运行此代码时,我到达 xhttp.open()
,但我从未达到 if (parseXML())
在readyState里面。我如何调试这里发生的事情?
我用来测试的 HTML 是本地文件,因此它是从硬盘驱动器运行的(如果这有什么区别的话)。
最佳答案
调试这里发生的事情:
- 打开火狐浏览器
- 单击滚动条右上角的三个垂直点。
- 点击“更多工具”->“开发者工具”
- 点击“来源”
- 在出现问题的 JavaScript 中放置一个断点。
- 从这里调试。
此外,您还可以研究一下 JavaScript Promise。它们很丑陋,但它们是您正在寻找的更强大的解决方案。如果文件足够大并且您尝试处理它,则您尝试获得的即时执行将不会发生。关于 promise 的文章在这里:
https://developers.google.com/web/fundamentals/primers/promises
关于javascript - 从外部 URL 下载 XML 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47937538/