您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Let user resize table columns by dragging the header edges & replace anchor text with its title attribute
当前为
// ==UserScript== // @name Resizable Table Columns & Replace Link Text // @namespace http://tampermonkey.net/ // @version 1.0.0 // @author aspen138 // @description Let user resize table columns by dragging the header edges & replace anchor text with its title attribute // @match *://*/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Insert some CSS for the column "grip" that we'll add to each header const style = document.createElement('style'); style.textContent = ` .column-resize-grip { position: absolute; top: 0; right: 0; width: 6px; /* Thicker area for easier dragging */ height: 100%; cursor: col-resize; user-select: none; } th.resizable-header { position: relative; } `; document.head.appendChild(style); /** * Attach grips to each table header so we can drag the column widths. * @param {HTMLTableElement} table A table element to attach resizing. */ function makeColumnsResizable(table) { const headers = table.querySelectorAll('th'); if (!headers.length) return; headers.forEach((header) => { header.classList.add('resizable-header'); // Avoid adding multiple grips if script runs again if (header.querySelector('.column-resize-grip')) return; const grip = document.createElement('div'); grip.className = 'column-resize-grip'; header.appendChild(grip); grip.addEventListener('mousedown', startDragging); }); function startDragging(event) { event.preventDefault(); event.stopPropagation(); const headerEl = event.target.parentElement; const startX = event.clientX; const startWidth = headerEl.offsetWidth; document.addEventListener('mousemove', onDrag); document.addEventListener('mouseup', stopDragging); function onDrag(e) { const dx = e.clientX - startX; headerEl.style.width = `${startWidth + dx}px`; } function stopDragging() { document.removeEventListener('mousemove', onDrag); document.removeEventListener('mouseup', stopDragging); } } } /** * Replace the truncated link text with its full "title" attribute. * @param {HTMLTableElement} table A table element containing anchors with a title attribute. */ function replaceLinkTextWithTitle(table) { const anchors = table.querySelectorAll('a[title]'); anchors.forEach(anchor => { anchor.textContent = anchor.getAttribute('title'); }); } window.addEventListener('load', function() { // Modify the selector below to match your table's selector const table = document.querySelector('.t-tablelist'); if (table) { makeColumnsResizable(table); replaceLinkTextWithTitle(table); } }); })();