gpt4 book ai didi

javascript - 我将如何去使用 window.find() activate on the text only once

转载 作者:行者123 更新时间:2023-11-30 16:45:04 25 4
gpt4 key购买 nike

我使用 hack.chat一点点,我看到他们有一个机器人,但机器人程序对我不起作用,所以我决定自己做一个。

var finderBinder;
var searchFor = function(command){
finderBinder = window.find(command, true, true);
if(finderBinder){
if(command === "/hello"){
ws.send(JSON.stringify({cmd: "chat", text: "hello!"}));
}
else if(command === "/cry"){
ws.send(JSON.stringify({cmd: "chat", text: "wah waha wahhh"}));
}
else
{
console.log("it was found but it was not a command.")
}
}
else
{
console.log("Did not find the command");
}
}

var loopdeloop = 0;

while(loopdeloop === 0){
searchFor("/hello");
searchFor("/cry");
}

现在,如果我在页面上单独运行它并输入 searchFor("/hello"),那么第一部分就可以工作了;那行得通,但是如果我希望它在弹出消息时自动执行此操作,我尝试了循环(在一个空的聊天室中,这样它就不会向使用过的房间发送垃圾邮件)并且它使我的浏览器崩溃。我知道它为什么那样做。因为它只是永远地检查,并且永远地看到它,所以它一直在尝试永远地编写代码..

但是我如何让它只在出现新文本时运行 searchFor,以便它运行其中的文本,如果它是一个命令,它会执行命令?或者有更好的方法吗?

最佳答案

阻止函数循环到无穷大(甚至更远!)的最简单方法是每 X 秒/分钟/小时/光年调用一次。

使用 setInterval(searchFor, 1000); 其中第二个参数是以毫秒为单位的时间间隔。

要将参数传递给您的 searchFor 函数,您必须创建一个匿名函数,这样它就不会立即被调用。

setInterval( function() { searchFor ("/hello"); }, 1000 );

这将每隔约 1 秒调用您的函数,但请记住,javascript 有一些开销并且会有轻微的延迟。还要注意不要过于频繁地循环你的函数,因为它会很昂贵,并且浏览器有内置的延迟,例如,你将无法将 setInterval 设置为 2 毫秒并让它正常跨浏览器运行。

编辑:将事件绑定(bind)到文本框中的更改的更优雅的解决方案也是可能的,这取决于页面的设置方式和您对它的访问,如果不知道该结构就很难回答。

关于javascript - 我将如何去使用 window.find() activate on the text only once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31374095/

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