您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
sticky note to the browser for taking quick notes
// ==UserScript== // @name Sticky Note // @namespace https://greasyforks.org/en/scripts/475201-sticky-note // @homepage https://github.com/Rainman69/Sticky-note-for-browser/ // @version 1.8.1 // @description sticky note to the browser for taking quick notes // @match https://*/* // @match http://*/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAV1BMVEVBQUH/5AA7PEJ2bjj/6wD/6ACxoCq2pS40N0I+PkF5cDg9P0U4O0Xgyy42OUZNSz//8gDkzywwM0Ldxh69rCt2bz0kKkQvNEbn0irdyS8pMEdzbD58cjancakPAAABjklEQVR4nO3c207CQBiFUQSKDGcRtSrv/5wSxcih0CaSDPNnrWtC8qWz27vp9QAAAAAAAAAAAAAAAAAAAAD+o387uVOaLSeDW5ksc8c06U9Ww1tZTe7xKfYHw4dbGQ4U5qBQocL8FCpUmJ9ChQrzU6hQYX4KFSrMT6FChfkpVKgwP4UKFeancK/qYlVwYfU86mDzknLnNOhYOHodt1m/1duCn+HjuO2P0qwu+pS2FqZ+XZX8pmktTOmpKvpd2laYprvAyIW7De4CAxfuA+MWfm8wcuHPBgMX/h7RsIUHgTEL/45o0MKjwIiFh0c0ZOFJYLzC4yMasDBN58eB0QrT4uQJRitMi/o0MFbh2QajFZ5vMFhhWjQFBips2mCowsYNRips3mCgwgsbjFPY8KGPVXhxg1EKL28wSGGaXQsMUHhtgyEKr24wQuH1DQYoTIv3lsDCC9eXP/RBCj/aA++1sNOdCqvNvMPP7vNOhY73Ynxui70Xo+PdJqngu00AAAAAAAAAAAAAAAAAAACAYnwB4rYpAiTInEoAAAAASUVORK5CYII= // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @license CC BY-NC-ND 4.0 // @licenseURL https://github.com/Rainman69/Sticky-note-for-browser/blob/main/LICENSE // ==/UserScript== (function () { 'use strict'; // Create the sticky note element var note = document.createElement('div'); note.id = 'sticky-note'; note.contentEditable = true; note.spellcheck = false; note.style.display = 'none'; note.style.position = 'fixed'; note.style.top = '10px'; note.style.right = '10px'; note.style.width = '7em'; note.style.height = '8em'; note.style.padding = '10px'; note.style.backgroundColor = 'rgba(255, 215, 0, 0.9)'; // Set opacity to 90% note.style.color = '#000000'; note.style.fontFamily = 'Arial, sans-serif'; note.style.fontSize = '14px'; note.style.zIndex = '9999'; note.style.borderRadius = '10px'; // Rounded corners note.style.boxShadow = '0px -3px 10px rgba(0, 0, 0, 0.3), 0px 0px 10px rgba(255, 215, 0, 0.5)'; // Upper shadow and glow shadow note.style.overflow = 'auto'; // Enable scrollbars when content exceeds the box height // Append the note to the document document.body.appendChild(note); // Show or hide the note when Tab key is pressed var isNoteVisible = false; document.addEventListener('keydown', function (event) { if (event.key === 'Tab') { isNoteVisible = !isNoteVisible; note.style.display = isNoteVisible ? 'block' : 'none'; event.preventDefault(); // Prevents the default tab behavior } }); // Save note content when it's changed note.addEventListener('input', function () { var content = note.innerText; // Use innerText to get plain text without HTML tags GM_setValue('stickyNoteContent', content); resizeNote(); }); // Remove note when the page is unloaded window.addEventListener('beforeunload', function () { GM_deleteValue('stickyNoteContent'); // Delete the stored note content document.body.removeChild(note); }); // Resize the note based on content length function resizeNote() { var content = note.innerText; // Use innerText to get plain text without HTML tags note.style.height = ''; // Reset the height to recalculate the scrollable height // Determine text direction based on the note content if (isRTLText(content)) { note.style.direction = 'rtl'; } else { note.style.direction = 'ltr'; } } // Check if text contains right-to-left (RTL) characters function isRTLText(text) { var rtlRegex = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/; return rtlRegex.test(text); } // Retrieve note content if available var storedContent = GM_getValue('stickyNoteContent'); if (storedContent) { note.innerText = storedContent; } // Resize the note when it becomes visible note.addEventListener('transitionend', function () { if (isNoteVisible) { resizeNote(); } }); })();