如何在TamperMonkey中停止该功能

时间:2014-10-28 00:52:36

标签: 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("Header_Login_tbPassword").value = s2;
    document.getElementById('Header_Login_btLogin').click();

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

logIn();

1 个答案:

答案 0 :(得分:1)

您可以将后面的Cookie功能添加到您的脚本中,以创建,检查和删除Cookie。

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

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();

请检查QuirksMode: Cookies,以便对以下代码进行更深入的讨论。

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);
}