网页表格复制器(油猴插件脚本)

2023-12-04 02:28

本文主要是介绍网页表格复制器(油猴插件脚本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网页表格复制器(油猴插件脚本)

测试表格

Column 1Column 2Column 3Column 4
文本居中文本居右文本居左默认
test1-1test1-2test1-3test1-4
test2-1test2-2test2-3test2-4

脚本代码

// ==UserScript==
// @name         网页表格复制器
// @namespace    http://tampermonkey.net/
// @version      0.231130.2
// @description  网页表格复制脚本
// @author       N-cat
// @match        *://*/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @downloadURL https://update.greasyfork.org/scripts/481068/%E7%BD%91%E9%A1%B5%E8%A1%A8%E6%A0%BC%E5%A4%8D%E5%88%B6%E5%99%A8.user.js
// @updateURL https://update.greasyfork.org/scripts/481068/%E7%BD%91%E9%A1%B5%E8%A1%A8%E6%A0%BC%E5%A4%8D%E5%88%B6%E5%99%A8.meta.js
// ==/UserScript==(function() {'use strict';// 样式添加const style = `<style>.get{position:fixed;right:80px;bottom:150px;background-color:#00a1d6;color:white;height:50px;width:50px;border-radius: 10px;font-size:15px;border:solid 3px #FA5A57;cursor:pointer;outline: none;z-index: 999;}.alertMessage{position: fixed;top: 30px;left: 40%;right: 40%;padding: 20px 30px;background: rgba(0, 0, 0, 0.8);color: #ffffff;font-size: 20px;text-align: center;z-index: 999;display: none;border-radius:5px;}</style>`;let div = document.createElement("div");div.innerHTML += style;document.body.append(div);// 提示框var alertMessage = document.createElement("div");alertMessage.classList.add('alertMessage');document.body.append(alertMessage);function alertmess(mess) {alertMessage.innerHTML = mess; // 填入要显示的文字alertMessage.style.display = "inline"; // 显示弹框setTimeout(function () { // 倒计时alertMessage.innerHTML = ''; // 清空文本alertMessage.style.display = "none" // 隐藏弹框}, 3000); // 3秒}// 获取按钮var get = document.createElement("input");get.setAttribute("type", "button");get.setAttribute("value", "触发");get.classList.add('get');document.body.append(get);// 获取table标签var getnum = 0 // 0:未(取消)触发 1:已触发let startX = 9999; // 按下坐标let startY = 9999;let endX = 9999; // 鼠标坐标let endY = 9999;get.onclick = function(){var tds = document.querySelectorAll('td');console.log(tds);for(let i of tds){// 文本设置无法选中i.style.userSelect = "none";// 鼠标悬浮在td上时提示i.addEventListener("mousemove", function(){i.style.backgroundColor = 'black';i.style.color = 'white';for(let j of i.children){j.style.color = 'white';}});i.addEventListener("mouseout", function(){i.style.removeProperty("background-color");i.style.removeProperty("color");for(let j of i.children){j.style.removeProperty("color");}});}// 框选变色(还未添加复制功能)window.addEventListener("mousedown", function(e){startX = e.clientX;startY = e.clientY;});window.addEventListener("mousemove", function(e){endX = e.clientX;endY = e.clientY;for(let i of tds){// 获取tr元素的左上角坐标和宽度、高度var rect = i.getBoundingClientRect();var tdleft = rect.left;var tdtop = rect.top;var tdwidth = rect.width;var tdheight = rect.height;console.log("起止坐标", startX, endX, startY, endY);// console.log("td坐标", tdleft, tdtop);if (startX <= tdleft + tdwidth && startY <= tdtop + tdheight && endX >= tdleft && endY >= tdtop) {// 将tr元素的背景色设置为黑色(或其他你想要的颜色)i.style.backgroundColor = 'black';i.style.color = 'white';} else if (startX !== 9999){i.style.removeProperty("background-color");i.style.removeProperty("color");}}});// 抬起鼠标重置window.addEventListener("mouseup", function(e){startX = 9999; // 按下坐标startY = 9999;endX = 9999; // 鼠标坐标endY = 9999;for(let i of tds){i.style.removeProperty("background-color");i.style.removeProperty("color");}});// 点击复制全部execl(基础适配)var tables = document.getElementsByTagName("table");for(let i of tables){i.addEventListener("mousedown", function(){var execl = []var trs = i.getElementsByTagName("tr");for(let j of trs){var row = []var tds = j.getElementsByTagName("td");for(let k of tds){if(k.style.display !== "none"){row.push(k.innerText);}}execl.push(row);}console.log(execl);var csv = ""for(let i of execl){for(let j of i){csv = csv + '"' + "'" + j + '"\t';}csv = csv.slice(0,-1) + "\n";}console.log(csv);// 复制视频名称到剪切板const textarea = document.createElement('textarea');document.body.appendChild(textarea);textarea.innerHTML = csv;textarea.select(); // 选取文本域的内容if (document.execCommand('copy')) {document.execCommand('copy');alertmess("网页表格已复制到剪切板");}document.body.removeChild(textarea);});}alertmess("网页表格复制器开启成功");}
})();

这篇关于网页表格复制器(油猴插件脚本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/451770

相关文章

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Java利用poi实现word表格转excel

《Java利用poi实现word表格转excel》这篇文章主要为大家详细介绍了Java如何利用poi实现word表格转excel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、每行对象类需要针对不同的表格进行对应的创建。package org.example.wordToEx

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名