Expands small textareas to improve readability and editing comfort on common websites.
Script này sẽ không được không được cài đặt trực tiếp. Nó là một thư viện cho các script khác để bao gồm các chỉ thị meta
// @require https://update.greasyfork.org/scripts/570704/1780717/Readable%20Textarea%20Expander.js
// ==UserScript==
// @name Readable Textarea Expander
// @namespace https://example.com/userscripts
// @version 1.0.0
// @description Expands small textareas to improve readability and editing comfort on common websites.
// @match *://*/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Minimum height for textareas that are too small
const MIN_HEIGHT = 220;
// Apply better sizing to a textarea
function improveTextarea(textarea) {
if (!(textarea instanceof HTMLTextAreaElement)) {
return;
}
// Avoid processing the same textarea multiple times
if (textarea.dataset.expanderApplied === 'true') {
return;
}
textarea.dataset.expanderApplied = 'true';
const computedStyle = window.getComputedStyle(textarea);
const currentHeight = parseFloat(computedStyle.height) || textarea.offsetHeight;
if (currentHeight < MIN_HEIGHT) {
textarea.style.minHeight = `${MIN_HEIGHT}px`;
}
textarea.style.resize = 'vertical';
textarea.style.lineHeight = '1.5';
textarea.style.padding = '10px';
textarea.style.boxSizing = 'border-box';
}
// Process all existing textareas
function processPage() {
const textareas = document.querySelectorAll('textarea');
textareas.forEach(improveTextarea);
}
// Watch for dynamically added textareas
const observer = new MutationObserver(() => {
processPage();
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
// Run once on load
processPage();
})();