gpt4 book ai didi

javascript - JavaScript 'while'循环导致浏览器崩溃

转载 作者:行者123 更新时间:2023-12-03 08:15:54 25 4
gpt4 key购买 nike

我有一个“搜索和突出显示”功能,该功能可遍历元素中的每个节点并突出显示关键字的每个实例。在此函数中,我使用了while(true)似乎正在导致浏览器崩溃或延迟!这个while循环有其他选择吗?
任何帮助将不胜感激。

console.log(keyword);
if (keyword != "") {
SearchResultCount = 0;
currSelected = -1;
if (element) {
if (element.nodeType == 3) {
while (true) {
var value = element.nodeValue; // Search for keyword in text node
var idxSensitive = value.indexOf(keyword);
var idxInsensitive = value.toLowerCase()
.indexOf(keyword);

if ((idxInsensitive < 0)
&& (idxSensitive < 0))
break; // not found, abort
else if ((idxInsensitive >= 0)
&& (idxSensitive < 0))
var idx = idxInsensitive;
else if ((idxSensitive >= 0)
&& (idxInsensitive < 0))
var idx = idxSensitive;

var span = document.createElement("span");
var text = document.createTextNode(value
.substr(idx, keyword.length));
span.appendChild(text);
span.setAttribute("class",
"highlightedText");
span.style.backgroundColor = "lightblue";
span.style.color = "black";
text = document.createTextNode(value
.substr(idx + keyword.length));
element.deleteData(idx, value.length - idx);
var next = element.nextSibling;
element.parentNode.insertBefore(span, next);
element.parentNode.insertBefore(text, next);
element = text;
SearchResultCount++; // update the counter
}
}

最佳答案

While循环需要一个false条件或一个break结束。我所看到的只是一个while (true),它将永远不会评估为false。由于您有一个永无止境的循环,因此会导致浏览器崩溃。尽管如果breakidxSensitive为负数,则应该使用idxInsensitive,但其他任何值都将使循环永远运行。

关于javascript - JavaScript 'while'循环导致浏览器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34414122/

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