您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Modifies Spectrum color pickers to offer the user’s selection of preset colors
当前为
// ==UserScript== // @name Custom Spectrum Palette // @namespace http://tampermonkey.net/ // @version 1 // @description Modifies Spectrum color pickers to offer the user’s selection of preset colors // @author Salvatos // @match https://kanka.io/*relations* // @match https://kanka.io/*entity_events* // @match https://kanka.io/*map_markers* // @match https://kanka.io/*calendars* // @icon https://www.google.com/s2/favicons?domain=kanka.io // @grant none // @run-at document-end // ==/UserScript== /* INSTRUCTIONS Add your color values in any valid format to the "palette" setting in the function below. - Each line enclosed in square brackets corresponds to a row of options in the color picker. - Each line should end with a comma, except the last row. - Values are enclosed in quotation marks and separated by commas. Valid formats: https://bgrins.github.io/spectrum/#details-acceptedColorInputs */ function spectrumSettings(pageDelay = 0) { setTimeout(function() { $("input.spectrum").spectrum({ showInput: true, showPalette: true, preferredFormat: "hex", palette: [ // Add your colors here ['#ffffff', '#000000', '#ff0000', '#ff8000', '#ffff00'], ['#008000', '#0000ff', '#4b0082', '#9400d3'] ] }); }, pageDelay); } /* Set the closest container that exists at page load to watch for changes to keep MutationObserver lean */ // Entity Connections page and calendar Event modal and entity Event modal if ( (window.location.href.indexOf("relations") != -1 && window.location.href.indexOf("entities") != -1) || window.location.href.indexOf("calendars") != -1 || window.location.href.indexOf("entity_events") != -1 ) { document.targetNode = $("#entity-modal")[0]; } // Bulk relation edit page else if (window.location.href.indexOf("relations") != -1 && window.location.href.indexOf("entities") == -1) { document.targetNode = $("#bulk-edit")[0]; } // Map marker edit page else if (window.location.href.indexOf("map_markers") != -1) { document.targetNode = $("#map-marker-form")[0]; } // Undocumented instances (normally the script shouldn’t run on those pages) else { document.targetNode = false; // if we wanted to run everywhere just in case, we might observe $("#app")[0]; } // If we know what we’re looking for, start observing the page if (document.targetNode) { /* Even though it exists in the DOM at page load, * the relations bulk editor seems to recreate the color picker when the modal opens for the first time... * So we need a bit of a delay to hit the new instance and not the one that’s being destroyed */ let pageDelay = (window.location.href.indexOf("relations") != -1 && window.location.href.indexOf("entities") == -1) ? 500 : 0; // Set and run the observer until the color picker becomes visible on screen after its container changes let observer = new MutationObserver(function(mutations) { if ($('.sp-replacer:visible').length) { observer.disconnect(); spectrumSettings(pageDelay); } }); observer.observe(document.targetNode, {attributes: false, childList: true, characterData: false, subtree:true}); }