JavaScript DOM依赖于视口导致奇怪的结果

JavaScript DOM Dependent on Viewport Causing Strange Results

本文关键字:结果 DOM 依赖于 视口 JavaScript      更新时间:2023-09-26

我试图找到从HTML文档中拉出的另一个字符串中的字符串的出现。该页面是一个SNMP监视器,但是我们在过去使用CTRL + F时遇到了一些问题,因为它只想在浏览器的当前视图中找到字符串。我试图绕过这个,而不必手动查看的东西是写一个脚本。

这里的问题是,docHTML变量似乎只能保存这么多数据,而其他任何内容都被截断了。我在Stack Overflow上查看了一下,发现我的字符串大小明显小于其他人尝试过的,所以这应该不是问题。

在'ipArray'变量中的所有IP地址确实存在于不同位置的页面上,并且在docHTML变量中,当我自己查看它时。当我在页面的不同点(视口依赖)运行doSearch函数时,它会给我不同的结果。

我真的不知道这里出了什么问题,因为代码有时工作,而不是其他时候。我的目标是让代码浏览整个页面,找到所有缺失的IP并将它们添加到数组中,以便我们可以继续并添加它们,而不是将电子表格上的490个IP与监控实用程序中的490个IP进行比较。

提前感谢!

var docHTML = document.documentElement.outerHTML;
var missing = [];
function doSearch(text) {
        if (docHTML.search(text) == -1){
            missing.push(text);
        }
}
var ipArray = [
"192.168.64.236",
"192.168.64.237",
"192.168.64.238",
"192.168.64.10",
"192.168.64.11",
"192.168.64.12",
"192.168.65.40",
"192.168.65.47"
];
var Total = ipArray.length;
for(i=0;i<Total;i++){
    doSearch(ipArray[i]);
}
console.log("Missing IP's: " + (Total - missing.length));
console.log(missing);

这是解决方案,没有太多的变化,只是调整您的日志记录语句。你印的是"失踪人数"这是错的。我们需要的是缺失的计数-

var docHTML = document.documentElement.outerHTML;
var missing = [];
function doSearch(text) {
        if (docHTML.search(text) == -1){
            missing.push(text);
        }
}
var ipArray = [
"69.171.224.11",
"199.59.149.230",
"174.121.194.34",
"209.200.154.225",
"69.174.244.50",
"67.201.54.151"
];
var Total = ipArray.length;
console.log(Total);
for(i=0;i<Total;i++){
    doSearch(ipArray[i]);
}
console.log("Missing IP's: " + (missing.length)); /***HERE***/
console.log(missing);

除此之外,整个代码如预期的那样为我工作。让我知道还有什么问题。乐意效劳

代码按预期工作。问题恰好出在它运行的SNMP监视器上。页面上的所有内容似乎都是在滚动时通过POST请求加载的。它似乎在之前和之后抓住了一些,这就是为什么我能够在代码中看到它,而不是在执行时。