编程语言
首页 > 编程语言> > javascript-函数无限循环并忽略其他函数的某些部分

javascript-函数无限循环并忽略其他函数的某些部分

作者:互联网

好的,所以基本上我编写此脚本所做的所有事情都是清除的,如果文本框已满,请单击一个按钮,否则请刷新页面.

我可以成功清除文本框,使其满载时刷新文本框,而刷新页面时,刷新框,但是一旦尝试使用clickButton函数,它将跳入无限循环并跳过clrLog中的if()

function addFunction(func, exec) {
  var script = document.createElement('script');
  script.textContent = '-' + func + (exec ? '()' : '');
  document.body.appendChild(script);
  document.body.removeChild(script);
}
function clickButton(val) {
  buttons = document.getElementsByTagName('INPUT');
  for (var i = 0; i < buttons.length; i++)
  {
    if (buttons[i].type == 'submit' && buttons[i].value == val)
    {
      buttons[i].click();
    }
  }
}
function clrLog() {
  var elements = [
  ];
  elements = document.getElementsByClassName('logarea');
  if (elements.log.value === '')
  setTimeout(function () {
    location.reload();
  }, 5000);
  for (var i = 0; i < elements.length; i++) {
    elements[i].value = '';
  }
  clickButton('Edit log file');
}
function main() {
  addFunction(clrLog(), true);
}
main();

解决方法:

我发现可以通过使用document.querySelector();避免使用for循环;相反-非常容易:)

标签:greasemonkey,javascript
来源: https://codeday.me/bug/20191118/2031908.html