我在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();
答案 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);
}