您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Операции с БД
// ==UserScript== // @name GN_PersistentStorage // @namespace Gradient // @description Операции с БД // @include /^https{0,1}:\/\/((www|mirror)\.heroeswm\.ru|178\.248\.235\.15|my\.lordswm\.com)\/.+/ // @exclude /^https{0,1}:\/\/((www|mirror)\.heroeswm\.ru|178\.248\.235\.15|my\.lordswm\.com)\/(login|war|cgame|frames|chat|chatonline|ch_box|chat_line|ticker|chatpost|chat2020|battlechat|campaign)\.php.*/ // @version 1.0.6 // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // ==/UserScript== "use strict"; //----------------------------------------------------------------------------// var script_name = 'GN_PersistentStorage'; // Enter your script name here //----------------------------------------------------------------------------// (function(){ try{ // wrapper start //----------------------------------------------------------------------------// //var operations = [ 'save', 'load', 'remove' ]; //var states = [ 'complete', 'incomplete' ]; var div = document.createElement('div'); div.id = 'GN_GM_Handler'; div.setAttribute('desc', ''); div.setAttribute('value', ''); div.setAttribute('operation', 'unknown'); div.setAttribute('state', 'incomplete'); div.setAttribute('is_null', 'false'); div.addEventListener('click', function(e){ e.preventDefault(); div.setAttribute('state', 'incomplete'); var operation = div.getAttribute('operation'); if(operation == 'save'){ save_value(div.getAttribute('desc'), div.getAttribute('value')); div.setAttribute('value', ''); } else if(operation == 'load'){ var value = load_value(div.getAttribute('desc')); div.setAttribute('is_null', !value ? 'true' : 'false'); div.setAttribute('value', value ? value : ''); } else if(operation == 'remove'){ remove_value(div.getAttribute('desc')); div.setAttribute('value', ''); } div.setAttribute('desc', ''); div.setAttribute('operation', 'unknown'); div.setAttribute('state', 'complete'); }); document.body.appendChild(div); //----------------------------------------------------------------------------// function save_value(desc, value){ if(check_gm_function()){ GM_setValue(desc, value); return; } check_local_storage(); try{ localStorage.setItem(desc, value); } catch(e){ show_error('Ошибка при сохранении значения'); } } //----------------------------------------------------------------------------// function load_value(value){ if(check_gm_function()) return GM_getValue(value, null); check_local_storage(); return localStorage.getItem(value); } //----------------------------------------------------------------------------// function remove_value(value){ if(check_gm_function()){ GM_deleteValue(value); return; } check_local_storage(); localStorage.removeItem(value); } //----------------------------------------------------------------------------// function check_local_storage(){ if('localStorage' in window && window['localStorage'] !== null) return; show_error('Не найдено локальное хранилище'); } //----------------------------------------------------------------------------// function check_gm_function(){ return typeof GM_setValue == 'function'; } //----------------------------------------------------------------------------// function show_error(error_string){ throw new Error(error_string); } //----------------------------------------------------------------------------// } catch(e){ alert('Ошибка в скрипте ' + script_name + ', обратитесь к разработчику:\n' + e); throw e; }}()); // wrapper end //----------------------------------------------------------------------------//