我使用hack.chat有點,我看到他們有一個機器人,但機器人程序不適合我,所以我決定讓我自己的。我怎麼去使用window.find()激活該文本只有一次
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(「/你好」);但如果我希望它只是在消息彈出時自動執行該操作,我會嘗試循環(在空閒的聊天室中,因此它不會將已用過的房間發送給垃圾郵件),並且會使瀏覽器崩潰。我知道它爲什麼這樣做。因爲它只是永遠檢查,它永遠看到它,所以它一直試圖做代碼永遠..
但是我將如何使它只運行searchFor當一個新的文本顯示,所以它會運行文本它,如果它是一個命令,它會執行命令?還是有更好的方法來做到這一點?
我也支持setInterval JavaScript函數。請注意,您可以爲其設置最大循環次數,併爲其正式停止使用clearInterval()創建一個假條件。 –
這肯定會阻止它永遠循環,但是如何讓它只在文本上運行一次,並且它似乎在運行時選擇文本,然後它不會在其他任何文件上運行。我希望它在屏幕上出現/ hello時運行,但只有一次。但如果有人再次輸入,它會出現。 –
您可以將您的功能綁定到元素上的事件。 'object.addEventListener(「change」,myScript);'來自[w3schools](http://www.w3schools.com/jsref/event_onchange.asp)。訪問包含整個聊天室全部文本的元素,並在其更改時觸發。 –