我正在寻找一个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。
答案 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"
。