Javascript 如何停止TamperMonkey中的函数

Javascript 如何停止TamperMonkey中的函数,javascript,jquery,tampermonkey,Javascript,Jquery,Tampermonkey,我在TamperMonkey中有一个脚本,我想运行一次然后停止。它应该提示用户,然后填写框,然后停止。但它一直在问 function logIn() {     s = prompt('Enter your username')     document.getElementById("Header_Login_tbUsername").value = s;     s2 = prompt('Enter your password')     document.getElementById("

我在TamperMonkey中有一个脚本,我想运行一次然后停止。它应该提示用户,然后填写框,然后停止。但它一直在问

function logIn() {
    s = prompt('Enter your username')
    document.getElementById("Header_Login_tbUsername").value = s;

    s2 = prompt('Enter your password')
    document.getElementById("Header_Login_tbPassword").value = s2;
    document.getElementById('Header_Login_btLogin').click();

    a = prompt('Paste the link')
    window.location.replace(a);
}

logIn();

您可以将后一个cookie函数添加到脚本中,以创建、检查和删除cookie

每次脚本运行时,请检查cookies是否存在:

function logIn() {
    var cookieValue = 'myLogin';
    var exists = readCookie(cookieValue);

    // If the cookie is not set, prompt to enter login and create cookie.
    if (!exists) {
        createCookie(cookieValue, '', 1); // Store for 1 day.
        promptLogin();
    }
}

function promptLogin() {
    s = prompt('Enter your username');
    document.getElementById("Header_Login_tbUsername").value = s;

    s2 = prompt('Enter your password');
    document.getElementById("Header_Login_tbPassword").value = s2;
    document.getElementById('Header_Login_btLogin').click();

    a = prompt('Paste the link');
    window.location.replace(a);
}

logIn();
查看下面关于代码的更深入讨论

function createCookie(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + days * 86400000);
        expires = "; expires =" + date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1, c.length);
        }
        if (c.indexOf(nameEQ) == 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}
函数createCookie(名称、值、天数){
var到期;
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+天*86400000);
expires=“;expires=“+date.togmString();
}否则{
expires=“”;
}
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
创建一个处理GreaseMonkey的.a,但应该是可移植的。注意:这个问题对你来说似乎是一个完美的解决方案。你必须提供细节。脚本运行的URL是什么?您重定向(
location.replace(a)
)到的URL是什么?编辑问题以提供此信息。您可能需要在创建cookie之前验证登录是否成功,否则它将不会再次询问您。也就是说,直到您删除cookie。