Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Tampermonkey插入控制按钮自动单击的复选框_Javascript_Jquery_Userscripts_Tampermonkey - Fatal编程技术网

Javascript 使用Tampermonkey插入控制按钮自动单击的复选框

Javascript 使用Tampermonkey插入控制按钮自动单击的复选框,javascript,jquery,userscripts,tampermonkey,Javascript,Jquery,Userscripts,Tampermonkey,我想创建3个复选框,选中后会定期单击按钮(每个) 左键和中键是相同的,只是美感不同。像这样: <a id="fightButtonBerserk1" name="defender" value="Berserk" class="button foundation-style smallhelp profileButton fightButton" title="" href="#"> <i class="icon-friends"></i>Berserk!

我想创建3个复选框,选中后会定期单击按钮(每个)

左键和中键是相同的,只是美感不同。像这样:

<a id="fightButtonBerserk1" name="defender" value="Berserk" class="button foundation-style smallhelp profileButton fightButton" title="" href="#">
  <i class="icon-friends"></i>Berserk! (5 golpes)</a>

有人能帮我吗?

那么,您正试图激活这些复选框,以便在选中时触发计时器,在未选中时取消计时器

如果是:

  • change
    事件添加一个侦听器(以便键盘和鼠标都能工作)
  • 存储对计时器的引用,以便可以删除它们
  • 对于“枯燥”的可维护代码,使用一个事件侦听器。添加
    data-
    属性,以便代码知道哪个目标与哪个复选框匹配
  • 不要像那样添加节点 此代码有效:
    (专业提示:单击“运行代码段”按钮后,但在选中复选框之前,点击所述按钮右侧的“完整页面”链接。)

    函数添加元素(){
    var newNodes=$(`
    左击
    中锋
    右击
    ` );
    //--最好添加一个节点,但现在垃圾邮件内联样式。。。
    newNodes.find(“输入”).attr(“样式”,“边距:1px!重要;行高:10px!重要;”);
    newNodes.find(“标签”).attr(“样式”,“右边距:20px;”);
    newNodes.insertAfter($('.foundation radius.fightContainer.foundation base font')[1]);
    //--激活复选框
    $(.myspamcontrols”)。在(“更改”、“输入[data trgtSelctr]”上,ProcessMy复选框);
    }
    添加元素();
    函数进程我的复选框(zEvent){
    var chkBox=zEvent.target;
    //--如果现在选中该框,则立即单击并启动计时器
    如果(chkBox.checked){
    单击按钮byjqueryselector(chkBox.dataset.trgtselctr);
    //chkBox.spamClckTmr=setInterval(单击按钮byjqueryselector,30000,chkBox.dataset.trgtselctr);
    chkBox.spamClckTmr=setInterval(单击按钮byjqueryselector,2222,chkBox.dataset.trgtselctr);
    chkBox.pageReloadTmr=setTimeout(location.reload.bind(window.location),300000);
    }
    //--否则,如果现在未选中此框,请取消计时器
    否则{
    clearInterval(chkBox.spamClckTmr);
    clearTimeout(chkBox.pagerLoadTMR);
    }
    }
    功能单击按钮BYJQUERYSELECTOR(jQuerySelector){
    var targetNode=$(jQuerySelector)[0];
    if(targetNode){
    console.log(“单击节点:”,jQuerySelector);
    //--我的警告并不总是足够的。请参阅https://stackoverflow.com/q/15048223
    targetNode.click();
    }
    否则{
    console.warn(`Node[${jQuerySelector}]未找到!`);
    }
    }
    /********************************************************************
    *******此块下面的所有内容,包括HTML和*******
    *******CSS块,是模拟的目标页面*******
    *******它不是用户脚本的一部分*******
    ********************************************************************/
    $(“按钮”)。单击(zEvent=>{
    console.log(`Button${zEvent.target.textContent}单击。`);
    } );
    
    .myspamcontrols{
    边缘:1米;
    边框:1px纯绿色;
    边界半径:0.5ex;
    填料:1×1米;
    }
    
    战斗1
    狂暴1
    狂暴2
    狂暴3
    
    第二场战斗
    这非常有效,谢谢。但是,在页面自动更新之后,如何保持复选框处于选中状态,而只保留选中的复选框?因为它正在停止脚本。@johannesinederauer,这是一个新的/不同类型的问题。你需要为此搜索和/或问一个新问题。但是,本质上,您需要在重新加载之间保存复选框状态,例如:
    sessionStorage
    ,或
    gmu setValue
    ,等等。
    <a id="fightButtonBerserk2" name="attacker" value="Berserk" class="button foundation-style smallhelp profileButton fightButton" title="" href="#">
      <i class="icon-friends"></i>Berserk! (5 golpes)</a>
    
    function addDomElements(){var a=$('<div class="foundation-radius fightContainer foundation-base-font"></div>'),
    b=$('<input type="checkbox" class="smallerBox" id="EsquerdaHitBox" name="EsquerdaHitBox" style="margin:1px !important;line-height:10px !important;">'),
    c=$('<label class="checkboxlabel" for="EsquerdaHitBox" style="margin-right: 20px;">Hit Left</label>'),
    d=$('<input type="checkbox" class="smallerBox" id="MeioHitBox" name="MeioHitBox" style="margin:1px !important;line-height:10px !important;">'),
    e=$('<label class="checkboxlabel" for="MeioHitBox" style="margin-right: 20px;">Hit Middle</label>'),
    f=$('<input type="checkbox" class="smallerBox" id="DireitaHitkBox" name="DireitaHitkBox" style="margin:1px !important;line-height:10px !important;">'),
    g=$('<label class="checkboxlabel" for="DireitaHitkBox" style="margin-right: 20px;">Hit Right</label>');
                          a.append(b),a.append(c),a.append(d),a.append(e),a.append(f),a.append(g),
                              $(a).insertAfter($('[class="foundation-radius fightContainer foundation-base-font"]')[1])}
    
    var button=document.getElementById("fightButtonBerserk1");
    setInterval(function(){
        button.click();
     }, 30000);
    var i = setInterval(function() {
                window.location.reload();
            }, 300000);