用于单击页面上每按几分钟加载一次按钮的Javascript

时间:2016-03-25 11:08:34

标签: javascript onclick

我正在寻找一个tampermonkey / greasemonkey脚本,点击其类名指定的按钮。此按钮在页面上每两分钟后加载一次。我需要这个按钮才能在加载时自动点击。

className:“btn btn-success”

我试过了(请修改我的代码并解释):

function (){
$('.btn btn-success').onLoad("click")}

我尝试过使用它,但到目前为止无法达到:

document.getElementByClassName("btn btn-success").onLoad();

所以,这是对按钮元素的更新。 当按钮处于活动/启用状态时:

<button class="btn btn-success" onclick="refreshLine();"><i class="icon-ok"></i> Yes</button>

当它处于非活动状态/禁用状态时:

<button class="btn popover-btn btn-success disabled" data-toggle="tooltip" title="" data-original-title="You can press this button in 1min 25s "><i class="icon-ok"></i> Yes</button>

“你可以按下按钮......”是计时器 帮帮我。我对此完全陌生。

解决问题: @ user3173842解决了我的问题,但他让我将setInterval设置为活动按钮代码中给出的函数“refreshLine()”。我用了setInterval(refreshLine, 1000)。所以它每1秒执行一次refreshLine函数。弹出按钮,执行refreshLine并按下按钮。感谢您的帮助@ user3173842。

2 个答案:

答案 0 :(得分:1)

如果包含该按钮的内容被刷新,并且您希望每次都单击该按钮:

// ==UserScript==
// @name       example
// @version    0.1
// @match      http:// PASTE URL HERE
// @include    http://code.jquery.com/jquery-2.2.2.min.js
// ==/UserScript==

var clickedButton;
(function checkButton() {
  var btn=$('.yes .btn.popover-btn.btn-success');
  if (!btn.length || btn[0]===clickedButton) {
    setTimeout(checkButton, 200);
    return;
  }
  clickedButton=btn[0];
  btn.click();
})();

如果每次存储和检查btn.length都会添加新按钮,并以这种方式单击新按钮。

答案 1 :(得分:0)

由于您更改了评论中的要求:

// ==UserScript==
// @name       example
// @version    0.1
// @match      http:// PASTE URL HERE
// @include    http://code.jquery.com/jquery-2.2.2.min.js
// ==/UserScript==

var lastState=false;
setInterval(function checkButton() {
  var btn=$('.btn.popover-btn.btn-success'), state;
  if (!btn.length) {
    return;
  }
  state=!btn.hasClass('disabled');
  if (lastState!=state && state) {
    btn.click();
  }
  lastState=state;
}, 500);

这将选择带有btn popover-btn btn-success的按钮,如果它具有禁用的类,则存储。每次删除禁用的类时,都会单击该按钮。如果受影响的按钮太多,您可以检查要为id属性单击的按钮的父元素,并使用var btn=$('#popover .btn.popover-btn.btn-success'),例如,如果看到id="popover"