Javascript在理解脚本中要使用的IF循环时遇到困难
我是javascript新手,正在使用tampermonkey创建网站。 我想做的是监视一个页面上的变量,当该变量达到某个值时,转到另一个页面,做一些事情,然后重新检查该变量的值 我的逻辑是:Javascript在理解脚本中要使用的IF循环时遇到困难,javascript,tampermonkey,Javascript,Tampermonkey,我是javascript新手,正在使用tampermonkey创建网站。 我想做的是监视一个页面上的变量,当该变量达到某个值时,转到另一个页面,做一些事情,然后重新检查该变量的值 我的逻辑是: setInterval(function(){reloadPage1},10000); var variable = someTextonThisPage; if(someTextonthisPage meets condition) { go to Page2; execute some
setInterval(function(){reloadPage1},10000);
var variable = someTextonThisPage;
if(someTextonthisPage meets condition)
{
go to Page2;
execute something on page 2;
setNewValueForVariable; //(or just go back to initial
//and get the new value from there)
}
现在我的问题是,当if执行时,它会转到第2页,即使我将变量设置为false,它也会继续循环if调用
我试过这样做:
function doThis()
{
if(condition)
return true;
else return false;
}
if(doThis())
{
goToPage2;
do stuff;
doThis();
}
最后,我让if语句继续下去,转到第2页,我的settimeout在该页上做了一些事情,但由于“if”的下一次迭代,所以从未执行过
在我的思维模式中,我犯了什么可怕的错误 您的doThis()
函数是正确的。一切都好
function doThis()
{
if(condition)
return true;
else
return false;
}
但是当你检查循环时,你只能调用它一次。完成这些操作后,您再次调用doThis()
函数,这是错误的。
它还取决于如何调用这个循环和函数
例如,
<script>
var i = 0;
onPageLoad()
{
if(i%2==0){
return true;
i++;
}else{
return false;
i++;
}
}
if(onPageLoad()){
goToPage2;
doStuff();
}else{
onPageLoad()
}
</script>
var i=0;
onPageLoad()
{
如果(i%2==0){
返回true;
i++;
}否则{
返回false;
i++;
}
}
if(onPageLoad()){
哥多帕吉2;
doStuff();
}否则{
onPageLoad()
}
这里,当条件满足正确的语句,即i%2==0
时,它将自动调用goToPage2
函数,否则它将再次检查条件
您可以在循环中添加interval/timeout
,以检查变量何时更新以及何时调用goToPage2
函数
希望这有帮助。当它转到第2页时,您是否
clearInterval
?只是一个观察,为什么在if块中调用两次此方法?这似乎是多余的。setTimeout
在一定时间后触发对函数的调用,其中setInterval
每隔一定时间触发一次调用
<script>
var i = 0;
onPageLoad()
{
if(i%2==0){
return true;
i++;
}else{
return false;
i++;
}
}
if(onPageLoad()){
goToPage2;
doStuff();
}else{
onPageLoad()
}
</script>