您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
The script will automatically check all remember login checkbox
// ==UserScript== // @name Auto Check Remember Login // @name:en Auto Check Remember Login // @name:vi Tự Động Check Ghi Nhớ Đăng nhập // @namespace https://greasyforks.org/users/37096/ // @homepage https://greasyforks.org/scripts/30726/ // @supportURL https://greasyforks.org/scripts/30726/feedback // @version 1.3.0.3 // @description The script will automatically check all remember login checkbox // @description:en The script will automatically check all remember login checkbox // @description:vi Script này sẽ tự động check tất cả các checkbox ghi nhớ đăng nhập // @author Hồng Minh Tâm // @include * // @icon https://4.bp.blogspot.com/-PijzdJYq1vk/WVhqpk1wGdI/AAAAAAAAAKw/Eu1Z_gDYU_UXtGGyN6v2ceE6unPCUaVSQCLcBGAs/s1600/auto-check-remember-login.png // @compatible chrome // @compatible firefox // @compatible opera // @license GNU GPLv3 // @grant GM_registerMenuCommand // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_info // ==/UserScript== (function () { 'use strict'; var ACRL = { name: 'Auto Check Remember Login', optionsDefault: { language: 'default', checked: true, masks: { values: ['remember', 'cookie', 'persistent-login', 'ghinho', 'ricordami', 'lembrar', 'recordarme', 'recordar', 'keeplogged'], texts: ['remember', 'keep me', 'stay signed-in', 'ghi nhớ', 'ricordami', 'lembrar', 'lembre-se de mim', 'recordarme', 'recordar', 'Запомнить', 'se souvenir', '记住登录(不可用)', '保持登入狀態', '記住我的資訊', 'ログインを記憶する'], }, version: GM_info.script.version }, languages: { vi: { name: 'Tiếng Việt', 'Auto Check Remember Login': 'Tự Động Check Ghi Nhớ Đăng nhập', 'Settings': 'Cài đặt', 'Language': 'Ngôn ngữ', 'Show advanced settings': 'Hiện thị cài đặt nâng cao', 'Uncheck all remember login checkbox': 'Bỏ check tất cả các checkbox ghi nhớ đăng nhập', 'Wait until a checkbox is found': 'Chờ cho đến khi một checkbox được tìm thấy', 'Limit wait': 'Giới hạn chờ', 'Delay wait': 'Trì hoãn chờ', 'Browser default': 'Mặc định của trình duyệt', 'Reset settings': 'Đặt lại cài đặt', 'Cancel': 'Hủy bỏ' } }, checkboxs: undefined, init: function () { ACRL.loadSettings(); ACRL.setLangBrowser(); ACRL.registerCommands(); if (ACRL.options.masks) { ACRL.observeDOM(document, function () { ACRL.checkRememberLogin(); }); } }, setSettings: function () { GM_setValue('options', ACRL.options); }, getSettings: function () { return GM_getValue('options'); }, loadSettings: function () { var options = ACRL.getSettings('options'); if (options) { if (ACRL.optionsDefault.version !== options.version) { ACRL.updateSetting(options); } else { ACRL.options = options; } } else { ACRL.options = ACRL.optionsDefault; ACRL.setSettings(); } }, resetSettings: function () { ACRL.options = ACRL.optionsDefault; ACRL.setSettings(); }, updateSetting: function (options) { var values = ACRL.array.unique(options.masks.values, ACRL.optionsDefault.masks.values); var texts = ACRL.array.unique(options.masks.texts, ACRL.optionsDefault.masks.texts); ACRL.options = options; ACRL.options.masks.values = values; ACRL.options.masks.texts = texts; ACRL.options.version = ACRL.optionsDefault.version; ACRL.setSettings(); }, getLangs: function () { var language; var languages = [{ value: 'en', label: 'English' }]; for (language in ACRL.languages) { languages.push({ value: language, label: ACRL.languages[language].name }); } languages.sort(ACRL.sort.dynamicSort('label')); return languages; }, setLangBrowser: function () { ACRL.languageBrowser = ACRL.getLangBrowser(); }, getLangBrowser: function () { return (navigator.language || navigator.userLanguage || 'en').replace('-', '_').toLowerCase().split('_')[0]; }, changeLang: function (text, language) { if (typeof (language) === "undefined") { if (typeof (ACRL.options.language) !== "undefined") { language = ACRL.options.language; } else { language = ACRL.languageBrowser; } } if (ACRL.languages[language] && ACRL.languages[language][text]) { return ACRL.languages[language][text]; } return text; }, sort: { dynamicSort: function (property) { var sortOrder = 1; if (property[0] === '-') { sortOrder = -1; property = property.substr(1); } return function (a, b) { var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0; return result * sortOrder; }; } }, array: { unique: function (array1, array2) { var array3 = array1.slice(0); var len1 = array1.length; var len2 = array2.length; var assoc = {}; while (len1--) { assoc[array1[len1]] = null; } while (len2--) { var itm = array2[len2]; if (assoc[itm] === undefined) { array3.push(itm); assoc[itm] = null; } } return array3; } }, commands: [{ caption: 'Settings', execute: function () { ACRL.openSettings(); } }], addCommands: function (cmd) { if (typeof GM_registerMenuCommand != 'undefined') { GM_registerMenuCommand(ACRL.changeLang(ACRL.name) + ' - ' + ACRL.changeLang(cmd.caption), cmd.execute); } }, registerCommands: function () { ACRL.commands.forEach(function (cmd) { ACRL.addCommands(cmd); }); }, checkRememberLogin: function () { ACRL.checkboxs = document.querySelectorAll('input[type=checkbox]:not([data-acrl="true"]):not([class*="acrl-"])'); if (ACRL.checkboxs.length > 0) { for (var i = 0; i < ACRL.checkboxs.length; i++) { var checkbox = ACRL.checkboxs[i]; ACRL.checkValues(checkbox); ACRL.checkTexts(checkbox); checkbox.dataset.acrl = true; } } }, observeDOM: (function () { var MutationObserver = window.MutationObserver || window.WebKitMutationObserver, eventListenerSupported = window.addEventListener; return function (obj, callback) { if (MutationObserver) { var obs = new MutationObserver(function (mutations, observer) { if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) { callback(); } }); obs.observe(obj, { childList: true, subtree: true }); } else if (eventListenerSupported) { obj.addEventListener('DOMNodeInserted', callback, false); obj.addEventListener('DOMNodeRemoved', callback, false); } }; })(), createPattern: function (value) { return new RegExp(value, 'i'); }, getCheckBoxText: function (element) { var checkboxElementText = element; var checkboxText = null; do { checkboxElementText = checkboxElementText.nextSibling; if (checkboxElementText) { checkboxText = (checkboxElementText.textContent || checkboxElementText.innerText || checkboxElementText.nodeValue || checkboxElementText.innerHTML).trim(); } else { checkboxText = null; break; } } while (!checkboxText); return checkboxText; }, checkValue: function (element, value) { var patt = ACRL.createPattern(value); if (patt.test(element.name) || patt.test(element.id) || patt.test(element.className) || patt.test(element.value)) { return true; } return false; }, checkText: function (checkboxText, text) { var patt = ACRL.createPattern(text); if (patt.test(checkboxText)) { return true; } return false; }, checkValues: function (checkbox) { if (ACRL.options.masks.values && checkbox.checked !== ACRL.options.checked) { for (var i = 0; i < ACRL.options.masks.values.length; i++) { var value = ACRL.options.masks.values[i]; if (ACRL.checkValue(checkbox, value)) { checkbox.click(); break; } } } }, checkTexts: function (checkbox) { if (ACRL.options.masks.texts && checkbox.checked !== ACRL.options.checked) { var checkboxText = ACRL.getCheckBoxText(checkbox); if (checkboxText) { for (var i = 0; i < ACRL.options.masks.texts.length; i++) { var text = ACRL.options.masks.texts[i]; if (ACRL.checkText(checkboxText, text) || ACRL.checkText(checkboxText, text.replace('-', ' '))) { checkbox.click(); break; } } } } }, openSettings: function () { ACRL.loadSettings(); var itemLanguages = ACRL.getLangs(); itemLanguages.unshift({ value: 'default', label: ACRL.changeLang('Browser default') }); var comboboxLanguage = new ACRL.form.Select(ACRL.changeLang('Language') + ':', { required: true, items: itemLanguages, value: ACRL.options.language }, function (e) { ACRL.options.language = e.target.value; ACRL.setSettings(); ACRL.openSettings(); }); // var listValue = new ACRL.form.List(ACRL.changeLang('Values') + ':', { // items: ACRL.options.masks.values // }); var checkboxUncheck = new ACRL.form.CheckInput('checkbox', ACRL.changeLang('Uncheck all remember login checkbox'), { checked: !ACRL.options.checked }, function (e) { ACRL.options.checked = !e.target.checked; ACRL.setSettings(); }); var formElement = ACRL.createElement('acrl-form', undefined, [comboboxLanguage.element, checkboxUncheck.element /* , listValue.element */ ]); var buttonResetElement = ACRL.createElement('button', { class: 'acrl-btn red' }, ACRL.changeLang('Reset settings')); ACRL.Dialog.closeId('modal-setting'); var dialog = new ACRL.Dialog(ACRL.changeLang(ACRL.name) + ' - ' + ACRL.changeLang('Settings'), formElement, 'modal-setting', [buttonResetElement]); buttonResetElement.onclick = function () { ACRL.resetSettings(); ACRL.openSettings(); }; dialog.show(); }, Dialog: (function () { function Dialog(title, htmlContent, id, buttonFooters) { if (typeof (id) === "undefined") { id = 'modal-' + (Math.floor(Math.random() * 1000000) + 1); } this.title = title; this.htmlContent = htmlContent; this.id = id; var buttonCloseElement = ACRL.createElement('button', { 'class': 'acrl-close' }, '\u00d7'); var modalHeaderElement = ACRL.createElement('div', { 'class': 'acrl-modal-header' }, [this.title, buttonCloseElement]); var modalBodyElement = ACRL.createElement('div', { 'class': 'acrl-modal-body' }, this.htmlContent); var modalFooterElement = ACRL.createElement('div', { 'class': 'acrl-modal-footer' }, buttonFooters); var modalContentElement = ACRL.createElement('div', { 'class': 'acrl-modal-content' }, [modalHeaderElement, modalBodyElement, modalFooterElement]); var modalElement = ACRL.createElement('div', { 'class': 'acrl-modal', 'id': this.id }, [modalContentElement]); buttonCloseElement.onclick = this.close.bind(this); modalElement.onclick = this.close.bind(this); modalContentElement.onclick = function (e) { e.stopPropagation(); }; this.dialog = modalElement; } Dialog.prototype = { show: function () { document.body.appendChild(this.dialog); }, close: function (dialog) { this.dialog.remove(); } }; Dialog.closeId = function (id) { if (document.getElementById(id) !== null) { document.getElementById(id).remove(); } }; return Dialog; }()), form: { Control: (function () { function Control(type, label, attribute, event) { if (typeof (attribute) !== 'object') { attribute = {}; } if (typeof (attribute.id) === 'undefined') { attribute.id = type + '-' + (Math.floor(Math.random() * 1000000) + 1); } var inputElement = ACRL.createElement('input', attribute); inputElement.type = type; inputElement.className = 'acrl-form-control'; var labelElement = ACRL.createElement('label', { for: attribute.id }, label); var controlElement = ACRL.createElement('div', { class: 'acrl-form-group', }, [labelElement, inputElement]); this.label = label; this.id = attribute.id; this.inputElement = inputElement; this.element = controlElement; inputElement.oninput = event; if (type === 'number') { inputElement.oninput = function (e) { e.target.value = parseInt(e.target.value) ? e.target.value.replace(/^0+/, '') : (this.min || 0); event(e); }; } else { inputElement.oninput = event; } } Control.prototype = { oninput: function (event) { this.inputElement.oninput = function (e) { e.target.value = parseInt(e.target.value) ? e.target.value.replace(/^0+/, '') : (this.min || 0); event(e); }; } }; return Control; }()), Select: (function () { function Select(label, attribute, event) { var items = [], itemElements = []; if (typeof (attribute) !== 'object') { attribute = {}; } if (typeof (attribute.id) === 'undefined') { attribute.id = 'select-' + (Math.floor(Math.random() * 1000000) + 1); } if (typeof (attribute.items) !== 'undefined') { items = attribute.items; delete attribute.items; } var selectElement = ACRL.createElement('select', attribute); selectElement.className = 'acrl-form-control'; if (!Array.isArray(items)) { items = [items]; } for (var i = 0; i < items.length; i++) { var text = items[i].label; delete items[i].label; var itemElement = ACRL.createElement('option', items[i], text); selectElement.appendChild(itemElement); itemElements.push(itemElement); } if (typeof (attribute.value) !== 'undefined') { selectElement.value = attribute.value; } var labelElement = ACRL.createElement('label', { for: attribute.id }, label); var controlElement = ACRL.createElement('div', { class: 'acrl-form-group', }, [labelElement, selectElement]); this.label = label; this.id = attribute.id; this.selectElement = selectElement; this.element = controlElement; this.itemElements = itemElements; selectElement.onchange = event; } Select.prototype = { onchange: function (event) { this.selectElement.onchange = event(); } }; return Select; }()), CheckInput: (function () { function CheckInput(type, label, attribute, event) { if (typeof (attribute) !== 'object') { attribute = {}; } if (typeof (attribute.id) === 'undefined') { attribute.id = type + '-' + (Math.floor(Math.random() * 1000000) + 1); } var inputElement = ACRL.createElement('input', attribute); inputElement.type = type; inputElement.className = 'acrl-form-check-input'; var textElement = ACRL.createElement('span', undefined, label); var labelElement = ACRL.createElement('label', { class: 'acrl-form-check-label' }, [inputElement, textElement]); var checkInputElement = ACRL.createElement('div', { class: 'acrl-form-check', }, labelElement); this.label = label; this.id = attribute.id; this.inputElement = inputElement; this.element = checkInputElement; inputElement.onchange = event; } CheckInput.prototype = { onchange: function (event) { this.inputElement.onchange = event; }, }; CheckInput.createGroup = function (name, checkInputs) { var checkInputGroup = ACRL.createElement('div', { class: 'acrl-form-group', id: name }); for (var i = 0; i < checkInputs.length; i++) { var checkInput = checkInputs[i]; checkInput.inputElement.name = name; checkInputGroup.appendChild(checkInput.element); } return checkInputGroup; }; return CheckInput; }()), // List: (function () { // function List(label, attribute, event) { // var items = [], // itemElements = []; // if (typeof (attribute) !== 'object') { // attribute = {}; // } // if (typeof (attribute.id) === 'undefined') { // attribute.id = 'list-' + (Math.floor(Math.random() * 1000000) + 1); // } // if (typeof (attribute.items) !== 'undefined') { // items = attribute.items; // delete attribute.items; // } // var listElement = ACRL.createElement('ul', attribute); // listElement.className = 'acrl-form-control'; // if (!Array.isArray(items)) { // items = [items]; // } // items.forEach(function (item) { // var itemElement = ACRL.createElement('li', {}, item); // listElement.appendChild(itemElement); // var buttonCloseElement = ACRL.createElement('button', { // class: 'acrl-btn' // }, '\u00d7'); // buttonCloseElement.onclick = function (e) { // var index = Array.prototype.indexOf.call(itemElements, itemElement); // if (index > -1) { // listElement.removeChild(itemElement); // items.splice(index, 1); // itemElements.splice(index, 1); // } // console.log(items); // }; // itemElement.appendChild(buttonCloseElement); // itemElements.push(itemElement); // }); // var labelElement = ACRL.createElement('label', { // for: attribute.id // }, label); // var controlElement = ACRL.createElement('div', { // class: 'acrl-form-group', // }, [labelElement, listElement]); // this.label = label; // this.id = attribute.id; // this.listElement = listElement; // this.element = controlElement; // this.itemElements = itemElements; // } // List.prototype = { // getItems: function () { // return this.items; // } // }; // return List; // }()), }, createElement: function (element, attribute, inner) { if (typeof (element) === "undefined") { return false; } if (typeof (inner) === "undefined") { inner = ""; } var el = document.createElement(element); if (typeof (attribute) === 'object') { for (var key in attribute) { el.setAttribute(key, attribute[key]); } if (typeof (attribute.value) !== 'undefined') { el.value = attribute.value; } if (typeof (attribute.disabled) !== 'undefined') { el.disabled = attribute.disabled; } if (typeof (attribute.checked) !== 'undefined') { el.checked = attribute.checked; } if (typeof (attribute.required) !== 'undefined') { el.required = attribute.required; } } if (!Array.isArray(inner)) { inner = [inner]; } for (var k = 0; k < inner.length; k++) { if (inner[k].nodeName) { el.appendChild(inner[k]); } else { el.appendChild(document.createTextNode(inner[k])); } } return el; } }; GM_addStyle([ '[class*="acrl-"], [class*="acrl-"] * { color: #333; font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: 400; line-height: 1.5; padding: 0; margin: 0; min-width: auto; min-height: auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }', '[class*="acrl-"]:before, [class*="acrl-"]:after, [class*="acrl-"] *:before, [class*="acrl-"] *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }', '.inline[class*="acrl-"] { display: inline-block; }', '.inline[class*="acrl-"] + .inline { margin-left: 10px }', /*modal*/ '.acrl-modal { z-index: 9999999999; padding-top: 100px; position: fixed; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; background-color: rgba(0,0,0,0.5); }', '.acrl-modal-content { margin: auto; background-color: #fff; position: relative; outline: 0; width: 600px; }', '.acrl-modal-header { color: #fff; background-color: #2196F3; padding: 15px; font-weight: 700; position: relative; }', '.acrl-modal-body { padding: 15px; }', '.acrl-modal-footer { background-color: #f9f9f9; border-top: 1px solid #ddd; padding: 8px 15px; text-align: right; }', '.acrl-modal-footer > button + button { margin-left: 8px; }', '.acrl-modal-footer:empty { display: none; }', '.acrl-modal-footer:before, .acrl-modal-footer:after { content: ""; display: table; clear: both; }', '.acrl-modal .acrl-close { position: absolute; right: 0; top: 0; bottom: 0; padding: 0 20px; border: none; box-shadow: none; border-radius: 0; outline: 0; text-decoration: none; color: inherit; background-color: inherit; font-size: 24px; font-weight: 700; }', '.acrl-modal .acrl-close:hover { color: #fff; background-color: #f44336; }', /*form*/ '.acrl-form-group > label { display: inline-block; margin-bottom: 5px; }', '.acrl-form-control { padding: 5px 10px; color: #333; background-color: #fff; border: 1px solid #ccc; width: 100%; display: block; margin-bottom: 10px }', '.acrl-form-group.inline .acrl-form-control { display: inline-block; margin-left: 8px; width: auto; }', '.acrl-form-control[disabled] { background-color: #eee; color: #888 }', '.acrl-form-check { display: block; margin-bottom: 10px; }', '.acrl-form-group.inline .acrl-form-check { display: inline-block; }', '.acrl-form-group.inline .acrl-form-check + .acrl-form-check { margin-left: 10px; }', '.acrl-form-check-label { position: relative; padding: 0; margin: 0; display: inline-block; }', '.acrl-form-check-input { display: none !important; }', 'input.acrl-form-check-input + span, input.acrl-form-check-input + span { padding: 0; margin: 0; }', '.acrl-form-check-input + span:before { position: relative; top: 5px; display: inline-block; width: 20px; height: 20px; content: ""; border: 2px solid #c0c0c0; margin-right: 8px }', '.acrl-form-check-input:checked + span:before { border-color: #3e97eb; }', '.acrl-form-check-input:checked + span:after { content: ""; position: absolute; }', '.acrl-form-check-input[type="checkbox"] +span:before { border-radius: 2px; }', '.acrl-form-check-input[type="checkbox"]:checked + span:before { background: #3e97eb; }', '.acrl-form-check-input[type="checkbox"]:checked + span:after { top: 8px; left: 7px; width: 6px; height: 12px; transform: rotate(45deg); border: 2px solid #fff; border-top: 0; border-left: 0; }', '.acrl-form-check-input[type="radio"] +span:before { border-radius: 50%; }', '.acrl-form-check-input[type="radio"]:checked + span:after { top: 10px; left: 5px; width: 10px; height: 10px; border-radius: 50%; background: #3e97eb; }', /*button*/ '.acrl-btn { padding: 5px 10px; color: #333; background-color: #fff; border: 1px solid #ccc; }', '.acrl-btn:hover { color: #333; background-color: #e6e6e6; }', '.acrl-btn.blue { color: #fff; background-color: #2196F3; border-color: #2196F3; }', '.acrl-btn.red { color: #fff; background-color: #f44336; border-color: #f44336; }', '.acrl-btn.left { float: left; }' ].join('\n')); ACRL.init(); })();