[英]Tampermonkey script keeps clicking on button
我对 Javascript/Tampermonkey 完全陌生。 我正在尝试制作一个 Tampermonkey 脚本,该脚本在页面加载后立即(快速)在特定页面按钮上单击一次。 鼠标点击后,网站要求验证。 验证必须手动完成。
这是网站上按钮的代码:
<button class="btn btn--arrow push-right js-continue-scrollposition" type="submit" id="btnSave" name="Command" value="plaats">Send</button>
这是我在 Tampermonkey 中的脚本:
// ==UserScript==
// @name Test
// @namespace Test
// @version 1
// @description test
// @author Me
// @match LINK OF THE WEBSITE HERE
// @grant none
// ==/UserScript==
(function() {
document.querySelector("#btnSave").click();
})();
这段代码似乎工作正常,但只有一个问题。 该脚本不断向网站上的按钮发送垃圾邮件。 我只想在按钮上生成一次(快速)鼠标单击。 之后需要停止或暂停脚本,以便我进行验证。 忙了一整天,找不到解决办法? 也许有人可以帮忙?
请记住,我对此完全陌生。 这是我使用所有这些的第一天。
解决这个问题的一种方法。
制作一个名为“isClicked”的 boolean 并将其设置为 false,然后在运行代码时检查脚本是否单击了按钮,如果是,则将 boolean 更改为 true。 然后停止 function。
// ==UserScript==
// @name Test
// @namespace Test
// @version 1
// @description test
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @author Me
// @match LINK OF THE WEBSITE HERE
// @grant none
// ==/UserScript==
var $ = window.$; // Avoids warnings in TamperMonkey
var isClicked = false;
window.setInterval(function(){
if(!isClicked){ // !isClicked checks if the boolean is not true
$("#btnSave").click();
}
}, 1000); // 1000 stands for the refresh rate of this function in milliseconds
$("#btnSave").click(function(){ // Functions when button is clicked
isClicked = true;
});
此答案使用jQuery(JavaScript 库)来简化 javascript。
注意:您必须通过以下方式在 Meta/Header“UserScript”中导入 jQuery 库:
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.