网页表格复制脚本
当前为
// ==UserScript==
// @name 网页表格复制器
// @namespace http://tampermonkey.net/
// @version 0.231201.1
// @description 网页表格复制脚本
// @author N-cat
// @match *://*/*
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAEwVJREFUeF7tnX+UXVV1x7/7zjyGMDIxEkRBQCL+IDQDc++dTKYCDtClRhdaCzHKjwgVgVbU1ljpYrVI2+Uq/gApxpWiFASkic2SdlWKWCQd0Jgmc897aUamUEMihSXYYCC/GDLz5p6uIzOSkMy8c8+9597z3t13rfw1e++z9/fsT8597953DoEvVoAVmFYBYm1YAVZgegUYEO4OVmAGBRgQbg9WgAHhHmAFzBTgFcRMN/YqiQIMSEkmmss0U8BlQLz58+e3z5o1q318fJwqlUq7WYns5aICo6OjE7NmzYpHR0frIyMj4wCki3k6B8j8+fNf09nZuSiO498lorfGcfwGALOJqMNFATknYwXGieiFOI5/SUQ/9zzvkc7Ozg2Dg4MvGUe04OgMIL7vn0NEnwXwLgBHTNbqWaiZQ7qnQDyZ0gSAtVLKL1ar1R+7kGbhgARB8BYAywFcAaDNBVE4h8IVUKCsBnCtEOJ/i8ymUEB6enrO9TzvFgDzixSBx3ZWASGl/Hy1Wl1bVIaFARKG4cellF8F8Nqiiudxm0KBbVLKz1Wr1XuLyLYQQHzf/zAR3QbgyCKK5jGbToFniOhTURR9L+/McwckDMN3SilXATg+72J5vKZWQEHy/iiKanlWkSsgPT09J3qe968AuvMsksdqGQUeHR0dXTQyMrInr4pyBSQIgjsBLMurOB6n9RSQUq6oVqufzuvBYm6ABEHgA9jIX+W2XtPmXNGolDKoVqv/nce4eQLyEIBz8iiKx2htBaSUtxPRVUII9YqK1SsXQBYuXHjSxMTE4wAqVqvh4GVRYCKO47fUarUnbRecCyC+719GRLfbLobjl0cBIrogj699rQOyZMmStq1bt64E8InyTB9XmoMCfyOEuM72ONYBCYJAvXj4QwBn2C6G45dKgW8LIS6zXbF1QPr6+rrq9fomACfZLobjl0cBKeUPpJR/ZPtziHVAFixYMOewww77BYCulNOnHg6pf07+sCZlbWVyV/P3OgCHpyy66nnesqGhoUdTxpnR3Tog3d3dr69UKtv2+42HST2rhBAXArCer0ly7JNIAXnyySd3zJ49W71R8e5Engca7/U87+yhoaGhFDEaulpvuCwAUctptVp9X8Nq2KBpFPB9/y4iuiRFwgzIlHhE9EAURYtTiMmujikQBMEdAC5NkRYDwoCkaB/HXRmQyQnK4haLVxDHu90gPQaEATFom/K4MCAMSHm63aBSBoQBMWib8rgwIAxIebrdoFIGhAExaJvyuDAgDEh5ut2gUgaEATFom/K4MCAMSHm63aBSBoQBMWib8rgwIAxIebrdoFIGhAExaJvyuDAgDEh5ut2gUgaEATFom/K4MCAMSHm63aBSBoQBMWib8rgwIAxIebrdoFIGhAExaJvyuDAgDEh5ut2gUgaEATFom/K4MCAMSHm63aBSBoQBMWib8rgwIAxIebrdoFIGhAExaJvyuDAgDEh5ut2g0pYGZPJAzkUA3gHgbVLKmXbqrhCRsvUMdPyNCxHtiON42NTfFT8iigGoY8Mek1KOVKvV7xeR28DAwOG7du1a5nneOVLKtwLoMMhjL4ARIvphFEWrk/q3JCBBEMwG8HcAPpZUELY/pALDk1v4q/NTcrl83/8kEf315BEEWY35P0R0bZIj0VoOkN7e3t44jv8NwNFZqcpxfqvA54QQN9rWIwzDFVLKT1oc58+FEF/Sid9SgHR3d3dWKpURACfoFM82iRWQRHRmFEXrEntqOoRheL2U8gua5sZmRLQsiqK7GwVoKUDCMLxVSnlFo6L576kUeHJ8fPzUzZs3q3v7TK/e3t7T4ziuZRp0+mD/p47bE0K8ONN4LQNIf3//rLGxsRmLzUn4lh9G93/fpEIU8B/cciHETaUAJAiCswGsTTopbG+kwNeFEJ828pzBKQiCZwEck3XcGeINCiFU30x7tcwKEgTBNQBuyFHcMg+1QQihvhLP7Orr63tTvV5/KrOAeoFeEELMKQsg3wFwkZ4ubJVWASFEpudG9vb2nhrH8c/S5pXUv1EdrbSCrAFwQVKB2N5MgUaNlTQqryBJFTvQvuH/VkEQMCDpNE7knTUganD+DJJoCg4wZkDMtbPiaQMQ/hbLfKoYEHPtrHjaAISfg5hPFQNirp0VTxuAqET5SbrZdDEgZrpZ87IFyCQk/C5WwpljQBIKZtvcJiAqd36bN9kM6gDyXQAfThb2QGt5tJ/GvWl8adc2YN/zqfK1DYhKjn8Poj9FOoCk/pq3viTSz6iJLdvWXwN6+qFUFeQBSKoEM3LmB4X7CcmA6HcVA6Kt1V7P884eGhoa0vYwMOQVxEC06Vx4BdEXk1cQXkH0u2U/S15BtGXjFURbKkcMeQXRnwheQXgF0e8WXkFMtOIVxES1In14BdFXn1cQXkH0u4VXEBOtyr2CnHIMsOBY4KSjgOPnADv2Att2AFufAx7eYqLnwT5Zj8EriP688ApiuIK8pgO45veA835nerF/vh34i/uAx9X+GQaXrTEYEP3JYEAMADn1jcCKC4A5R+gJvfInwK0Jd5IKTwC+8kH9MW76D+CujXr5MCB6OikrBiQhILMqwD9fDryhS19kZXlPBHxF8+2OhScCX78A6GjXH0MCuOweYNPTjX0YkMYaTVkwIAkB+cv3AOefri/w/pY6kJjAMTXGM7uAP7gNGB2fOT8GRH/+GJAEgKj/0Tcs1xf3UJYzQZIGjqmx1Gee+x5lQNLN0iveDEgCQHpPAL710fTSHwqSLOBQma0SwJd+xICkn6WXIzAgCQC5bBHwmXdlI/3+kGQFh8ps+JfAJQ22ZOZbLP05ZEASAPJX7wM+uEBf3EaWCpJHtgC3fqSRpf7f9+4D3nmzuytIT09PPxGpX6bN9Tyv4Vva+pUf2jKOY7XJ9mNdXV0PDg4OvpQ0HgOSAJDL+4Grz0oq8cz2EzHQZnym1cGxH/sV8JFvuweI7/tXENFnAbw9WwW1o+0jopUdHR3XrVu3breuFwOSAJAz5gErluhKW4zdv2wGrv+BW4CEYbhaSrm0GEUOGnVrHMcX12q19Tr5MCAJADmqE3joah1Zi7O54UFgddUdQIIguBfAh4pT5JAjq7Mkz6zVauqwpRkvBiQBIMr0b88DFs9vJGsxf39u78vPQXY1uNPO60O67/t/RkRfLkaNhqOuFUKc28iKAUkISGcH8L0/TP4kvdFEpP27epJ++T8CQuMAgTwAGRgYaN+9e/evMj6EM61MB/hLKc+vVqtqhZv2YkASAqLMTzsOuPPiTOcqdbBv/RT4xo/1wuQBiO/7S4ko8bHLehVkY0VE342iaMbvEBkQA0CUS5bPLtJOt84rLPuPkQcgYRh+TUr5J2lrs+z/lBBixgNfGRBDQFyBJCkcKu88AAmCIPVGfpbhUOFjIUQb32JpKm2yL1aRK4kJHHkBEobh3VJKx25ED2qEfUKIwxkQi4AUtZKYwpEXIL7vf4GIrteUviizYSFENwOiKb/JCjIVOs+VJA0ceQHS09Nzlud5D2tKX4iZlPJr1WpVPd2f9uLPICk+g7xaVQXJN5YAlRnvatP1Qlo48gJEjRMEwX8C6EtXsT3vOI5Pr9Vq/8WAaGqcZgWZutViQF4R2/f99xJRgxdfNCcnYzOd1WMS8jsAXJpi+HLvasK3WDO3jqNP0+8TQpyn0/R8i5XBLVaenz+m0k1zq5XH17z7N9/km7y3AOjQaUqbNkT0zSiKrtQdgwFJCUgRcKSFJG9AVL7qHPTx8fFPEZE6y36eboNmZLcHwP1xHH+zVqtpbp3x8sgMSApAioQjDSRFALJ/o/f19R0zNjZ2VHt7u/UfTBHRixs3btxmChoDYgiIC3CYQlI0IKbNWoQfA2IASPexwF2XFDFd049523pgxSN6OTEgejrxLdardNL5mtd04zj9KTGz5I3jzHRr5MUrSMIVJM3GcY0mI+3feeO4tAoe7M+AJAAki43jsp/CAyPyxnHZKsyAJAAkq43jsp3CA6PxxnHZqsuAJAAky43jpobNetsf3jiOATmkAkEQrAGgHkIZX40+pPPGca9Iy6fcardZed7FynLjOFtbj7q6cZx2OzlmyLdYCW6xsto4zubm1S5uHOdYzydKhwFJAEgWG8fZPv7AtY3jEnWjg8YMSAJAlGmajeN03sBN8wqLaxvHOdjviVNiQBICYrpxnA4cU6mYQOLaxnGJO9FRBwYkISDKXB37fMv5+gds5nGI541rgbuH9LqM38XS00lZMSAGgCgXdUTz588FPjDDeSFZHANtYwwGhAHRV8AQkCm3U455eUU5YQ4wby7w3B7gyR3A49uBnzxhlMZBTlmPUTQg/HuQbPpi/ygNf1iTx4PC7MsqJmIRgPAvCoc0b4DNeoIBMdPtkF55A8K/SffOHhpiQDJsYbuh8gSEdzVBeV41sdu2+UXPCxDeF+s3c8qA5Nfa2YyUFyC8syIDkk3H5hwlD0B4b97fTiqvIDn3d+rh8gCEd3dnQFI3alEB8gCEzwdxD5DUJxrJo/2iejbXcWnXNmDf86nGbPSDKT5hyj1AUv+iMFXHlMy5ESB8RiEDUjIkDiy3ESB8yi0DwoDMoACfk86AMCANFHD0KfpU1muFEOc2mkR+3b2RQvz3QyrQ6BZryikIgnsBfMgxGXfEcXxmrVYbaZQXA9JIIf57KkCUcxiGq6WUSx2RcmscxxfXarX1OvkwIDoqsc1BCuiuIFOOk2/0qhNl316QnPuIaGVHR8d169at262bQysB8h0AF+kWznbpFEgKyNRoPT09/USkHjjN9Tyv4c8Y0mUJxHG8F8BjXV1dDw4ODr6UNF7LAOL7/rVE9MWkArC9kQJVIURg5NlkTi0DSBiGi6WU9zeZ/s2a7m1CiE80a/JJ8m4ZQNTvnOv1+rNJimdbYwX+WAix0ti7iRxbBhCleRAE9wC4sIn0b8ZUnx0bG5s/PDyc7mWuJqm8pQDp6+vrqtfrPwNwfJPo32xpyjiOB2q1muZpiM1W3sH5thQgk6tIH4DvAzi6+afHuQqWCyFuci4riwm1HCCTkMwGcDOASy1qV6bQw57nLRsaGtpUpqIne+mOlH3kxi8KDzVxQRCo79sXAXgHgLdJKQ+fYYIrRKRsPdMmICL1CsOwqb8rfkQUA3hSPT8gouEoikr77WBLriAmjdbd3f36SqWyDcARJv7Kh4geiKJosak/+7mnAAMyOScMiHvN6UJGDAgD4kIfOpsDA8KAONucLiTGgDAgLvShszkwIAyIs83pQmIMCAPiQh86mwMDwoA425wuJMaAMCAu9KGzOTAgDIizzelCYgwIA+JCHzqbAwPCgDjbnC4kxoAwIC70obM5MCAMiLPN6UJiDAgD4kIfOpsDA8KAONucLiTGgDAgLvShszkwIAyIs83pQmIMCAPiQh86mwMDwoA425wuJMaAMCAu9KGzOTAgDIizzelCYgwIA+JCHzqbAwPCgDjbnC4kxoAwIC70obM5MCAMiLPN6UJiDAgD4kIfOpsDA5IhIADuE0Kc5+xsc2KJFQiCIO3Zl+5uXp1EjSy2HpVS/lRKuaRWqz0DQCYZn23dU6Cnp+dEz/PUOe9qE3TTSx0iepYQomoaQMfP+mmo/f39rxsbG3sCwGt1EprGZgLAo0S0PY5jBiSFkC64EtGxAE5R+5KnyOcJIvr9KIrUwU7WrjQJaiUVBIE6U0QdXcCnU2kpxkY6Ckgpf0REVwkh1H++1i7rgHR3d3dWKpWH1VGH1qrgwGVU4J927ty5bMuWLftsFm8dkCAI1AE6d0spl9oshGOXToFbhBCfsV21dUBUAWEYXiml/HvbxXD88ihARB+Pouh22xXnAshpp512XHt7+1MpP5TZ1oLjN48Cv25vbz99w4YNT9tOORdAVBG+799PRHyMmu0ZLUf8fzjyyCOvGhwcrNsuNzdAgiA4A8AggDbbRXH8llZgXEoZVqvVzXlUmRsgqpggCB4A8J48CuMxWlaBVfPmzbtkzZo16tmY9StvQPoArAbwZuuV8QCtqMD2iYmJhZs2bfpFXsXlCsjkZ5GLiOhmAHPzKpLHaQkFdhLRhXmfLZ87IJOQXEFENwCY0xJTx0XYVmCnlPJPq9XqHbYHenX8QgBRSYRh+FEp5Y0A3ph30TxeUynwayK6OooidWue+1UYIJMryZlEdCeAk3KvnAdsBgWeiuN4aa1WW19UsoUCoopWb/uOj48vl1JeCeCoooTgcZ1S4Dkp5a1xHH9106ZNLxSZWeGATBU/MDDQvmfPno/Fcbx48oHiEUUKw2PnrsBLANRjgH+fmJhYVTQYU9U7A8hUQv39/bPq9frcer3+pra2tuPiOFYf5DuJiB8w5t6zVgcck1LuAbC9ra3t6Xq9/rzneduFEC9aHTVhcOcASZg/m7MCVhVgQKzKy8GbXQEGpNlnkPO3qgADYlVeDt7sCjAgzT6DnL9VBRgQq/Jy8GZXgAFp9hnk/K0qwIBYlZeDN7sC/w8XI7tuHcgFNwAAAABJRU5ErkJggg==
// ==/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("网页表格复制器开启成功");
}
})();