NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name 气象数据填写 // @description 仅支持私人内网网站使用! // @version 0.0.1 // @author FanZhenHua // @match *://www.jyshare.com/front-end/5575* // @match *://10.1.65.226/index.html* // @connect */radarParam/selectRadarParams/* // 匹配Api接口链接,禁止跨域弹窗 // @grant GM_xmlhttpRequest // @require https://unpkg.com/mammoth/mammoth.browser.min.js // @license MIT // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAC79JREFUeJztWQlwVdUZ/s659749yctmQiAISUBQGZBNQUasGq21IAw6Uqud1uK0xY7OaKcdxHZa7TjadpwOuLSOqKOVsWDraLHaFtcBhUJToAEMBCIJWUjysrz93e30v9tLImUTMdMZT/Jy37vv3HO+7/+/fzkg4/98yKMN4GzHlwRGe3xJ4GzHsZafBYTp1ytrV+uf5flRJRBvXDjPZ7z3NzOT/KT3o8u/VjZv69EzXeOcE+hrWBoIFmRuB8xQRguvK7nw1aR1v2Pfd2VFNNzNdb0ARnKabGavodvPn+n655yASLYs4Iqxhvv9gaCcvGFg79fvjF606UjI2FfPJXURdANckiDz3AgCseY7C3wYmJHTgzvLpryQGTUCaS3SF8wdzXBJBCRJqw8q+rbMoeufYUZsOdPNMKCDMUDyi6/Edi8u94VCYUWK/4CheSVT+yJmT/ZXtMxPRo2ACM04bBqtfQJGsWVthlwlNxIPwIwDRoomCAhI4EpkTDgUf5uzVJQZiXFCS9KlH9lenj3Z+uecwPh5jw8kd0zohtBqRW6AdkyChf3gvnEAG0/4cxBGD1guxpDonybkUrqvEClAjau6qpe/9YUS6Gl+UJLN5jrOcgUSM8MSz9TxTMtEM9cGXsTAgzPBeBWB7qe4TtgeADsPzF9OOuqgmGknrgWAUgAty9/J+SftBj7+Ygh07LxPCqY2rvFFipYROj8EU5iuB029j7OIBu6/hG5zmOoOBzwMwm/ZmpPF/RQLASAQhkjRdxqDFA51Fo8Zo55sz8+VgJoVPNvdNV+pilVAIUAWMJWyphwjyVQS3l6yfBeB12i2cMDbv4LAp+kzJy5+G5WZiCM0pmK58B+elDm86E3d9G9VRXlj6aSnes4ZgQkLHtMO/WHuEmSbNkeq1ToeICeYgwSeEUCCaRylz7otG2aDd6zPYDrvrY+mlZUYzTWAZI+fC20+48p8mctQcvsGO96+dFbV1dsPfa4EulMq29ipXtCV5QufB59flGsJBXnMFkZIakW5/jEmqR9hHLZDQc7BbUnfvpq2B6y3zHpZn10uRjIJ2c8dXlkd6U4d2cxEPnzvsyaw4Uiy+MlW7RdJ4VtR6mfBIGdQ/ZMQN+vIrgz9mIc2mveBqqFI247Fyi8xSX6XEAkbsAXOI2N7xRomeYwcoKd0yEUZGGkVfU3S0XS2fKVWNesgsOvzIfDg/vTij+LS2lI/H19Ceyco3BKmiakRAZUANKWZhdMeEkkgrlyO3+uvYXL2ZXzLdx+CLO5SIMBwzW4NetbIEYGkgNafQV9L4atJNuXOqXdtjQHrRmD4zAQe3R+f16JK66oCvCxDMVkim7ikSEAhs86ldDlIUm9pE8iYzJ6vExNOUg9yHxql2/BMiuF2//0o4sds83uesC9kCC1NJKiECS6ZSnXVmqnXWeCPH5+JwBPNiQkfxuU/1wV5GXkXJYqJb48RCJB8LF38tdvEIepeUgaHZ2ELvMVFEJEI52hQboWWNHBPcCU4N9yAYLb1dSrQGtU86xk5TOUjGlvXu/PKS8tmv9d71gR6DMHu35N+OCzLlTnaLGc6GeVIVmDHoEBMZejWJDtF5jVOf03nQnMtkiZKZQlbpOWoHdiCRZEXqbgxO3h1snz6mPViKK6hG6YKLgZrwkrz5v6GubcVz/xn41kRWNeUnBvTlOtqfQTeEPamHTmO9R2m1Za5GcSBbQovt8DRuMWBuQFLf4r9fjw58CNclfgTgkrawoo0CSXRThMpfuQoZSQyEtQMJEVMl9LmI7muvy/yV17rRcuZE9iXZMt08BLLpIY5FHiGcOQjhBgWliz/nAkvTdply76GSUqxYA0+aJ+HBXwzNIqLRDfJp4+hbJJAtsd5iNmuzCGdyvrKaowReE5JoDtlsPfb++c05ZSLyQ5j2zTl5hJa0QJvegQYG0qHzPHCkB8cEp7JbPBw6pYVMlFFwl8Gr0ZtxzvQMwJyzpIOGR1K/7GmqsWmrAxYBYVJiimX1BypHnu9GI7vhATaUypeac9csrYlvUqWIvWKn0cpnjCF2hVOS3SmhZ3nnV7A0TgbEv1I4ML1iFO57Pfet2GJWjV2IXo7wigPp1BcR5mKEoIqfLHZ3z+8ZSSqRnx6nJDA+rbcN4/q/jXVAakkTWmyl1Ja1nSsalnPsNsBuGBcMq7kvYSCfDx4ccBcLzlzrBxVEeAonrEAO6ufQ6W2GzO0Taj2NUIROO9E2E5J4Of7EvUf53zPjvVxX0tKIKcLeGoZMjDldTciLTCylcvz8kH+6tnaAm26j/Jh65TIDAUlhUiW3IgDuBENxk8RTPwbX+15qPDAB5eGJl/xQPqMCDy8f3DM9qT01MQg88VUCiQbvMhvzry4tDIcc+SQS8bR+sRq6MWVmLJiFSSJexztrBNvbkTnhifhn1OP8dcstWlZ9ymJYUATGNRcP9HiPpJULjQTa8ufRUhg6etHfvjy4vOjxqdxnpBAQwK3GEyq1eiRjGt5z5YjBeHxEOjp6sb211+AfF4dKr9xL4oLgw54d07zrgbsfeMlFCYZoguXoNAHeJ1D3mPMtoh16qS2g7wSiGJ/Qn36je4s5SX847QItOlCXr4ttbw2xO0cbwwDYbe8lvO9gPUsTO+KJtRi7AObIBWWQKYWOt8SuM9W1t+MLq0YRdNmUdW1pCTyBPJmEMy5b3nHtE7JVoZSQg1x9cH/DKTfnxYN/c+DzQgCrxwYmJw2fDWy5V5zSPO27V19DynI+nGk4qfd5tQvsIPZL7kp1a0J1psS8shlN90A+sqe62beYTXD9a0bU97ahQTksManPbtn4HyacvCUBA4k+QWmYKVeNfU2GGYnlxL3srntAQuYQv2M0KgWy4G8hYekxqCYBhSfMmIV4dZnu+QJ5NsN299ERiaWusnCnSlz/mkR0AwzkNFMrrouFG7Ky2vVzjielfLNgS21/X98Bn1vb8TcX2+AL1pqFykPUNfWt7Dr0XswZ902lJZH8560de8GgekGtucIuP7l9NMZ0yb/L/DHEaj0iaSmG3rKEHIRuU9wTwZwzcmGPMJG6tismY3u9Wux+5G7MPmO1fBXjKM0K5DYsxVNzz2KeHA8EnIEUQD5I5UbQ6ZneOGZxNlLJyYqZSg9a0qnReDaccH961tTvR1ZX2W0QMpnErfNca02xGe4vMbOmImeFb/F4TXfQ1fDtSiuHEfNmYZY11Ho5bNRePfTiEYkF+CwJkOw/JHStHskd31yfZpcG0/oKBas87QIXFERbL7ylWNbdvWqN40PBqjMM1se5rDoFcM6zCErAmFKjRdfdxUOTfkXut7djI72wzRNRmDxXJTNnI66CRG7bWDuWp4sh7fd3pW7cmpNUU7ty5hTq33bNp0OAWtML+Av7G5OL2kqkOWLihUE3EYt3yYzr8sc6jWZvRClUyIxdWIUFWOWIZ11ak8BtQoFAYagPFQExTDXiRGudBKCdTYYoCL6SXsWRfHc/svqCveelgescdu08Jux/sENG/clb1UviGB6qUKW43bVFcJLkcd7wRqcNlYo0YQofoyw0yNZmYRxT4JeT+QmCLfB84hx5nRW/ZqJHe05aI394qIK47Fl00qTp01gTlVIbx4wvtP+Urt/R4O6tKs6widU+FEelAiYs4mn4OFJlgsXgCcP565dydmwPsTLPkx43at7ZqbPWdJrW1xHa1sW6r4+cWWVserHS8pffOPeE8E/QTNXF5XUNR/2rAjtSu/ec7Bv5YFDvsqDER/kkOQc/dyM5P7CS/rMJWDNydclj5E3hzvPWrFgf+ecMKETg1xSh96TRWk2d2xWmfGbO64pWbOwpkQ7MfyTtNN3zy8f6EiKh17f2/u7nU2ZW5o7k/WxDnOiIXiBsMUiBLXUKp3ENDsVEiDqYRTbvo48JOEVkqF/d7DbBKtImU6TJXMuFN0QetBEtsonjk2foLx28cTQy6uur2p9Z/XJoJ+CgDWqIvbm1sHucfd1zsfxR5aTj1H/X8qzHV8SGO3xJYHRHv8FO2Wi4Aa2x90AAAAASUVORK5CYII= // ==/UserScript== /* 创建一个按钮组元素 */ function buttonBoxGroup() { const buttonGroup = document.createElement("div"); // 设置按钮为悬浮固定定位,使其在页面滚动时位置不变 buttonGroup.style.position = "fixed"; buttonGroup.style.left = "35px"; buttonGroup.style.top = "520px"; buttonGroup.style.zIndex = "9999"; // buttonGroup.style.backgroundColor = "#F5F5FB"; // 背景颜色 buttonGroup.style.border = "none"; // 去除边框 buttonGroup.style.borderRadius = "5px"; // 添加圆角 buttonGroup.style.padding = "10px"; // 添加内边距 buttonGroup.style.gap = "5px"; // 子元素间间距 buttonGroup.style.cursor = "move"; // 鼠标指针 buttonGroup.style.display = "flex"; //弹性布局 buttonGroup.style.flexDirection = "column"; // 垂直排列 buttonGroup.style.boxShadow = "0 4px 6px rgba(0, 0, 0, 0.1)"; // 添加阴影 document.body.appendChild(buttonGroup); return buttonGroup; } const buttonGroup = buttonBoxGroup(); // 创建按钮组元素 /* 创建一个按钮元素 */ function buttonBox(textContent) { const button = document.createElement("button"); button.textContent = textContent; button.style.color = "white"; // 字体颜色 button.style.fontSize = "20px"; // 字体大小 button.style.backgroundColor = "#325D88"; // 背景颜色 button.style.border = "none"; // 去除边框 button.style.borderRadius = "5px"; // 添加圆角 button.style.padding = "8px"; // 添加内边距 buttonGroup.appendChild(button); return button; } /* 启用-禁用 按钮 */ function disabledButtonGroup(state, button) { if (state) { // 计算按钮偏移量 const dx = Math.abs(parseInt(buttonGroup.style.left) - parseInt(startX)); const dy = Math.abs(parseInt(buttonGroup.style.top) - parseInt(startY)); // 移动量均小于3 if (dx < 3 && dy < 3) { button.disabled = true; // 禁用按钮 button.style.backgroundColor = "#CDCDCD"; button.style.cursor = "not-allowed"; return true; } return false; } else { // 取消禁用 button.disabled = false; button.style.backgroundColor = "#325D88"; button.style.cursor = "pointer"; return false; } } const tipBoxes = []; // 记录所有提示框元素的数组 /* 计算并设置所有提示框的位置 */ function setTipBoxesPosition() { const totalHeight = tipBoxes.reduce((sum, box) => sum + box.offsetHeight, 0); const gap = 5; const totalGap = (tipBoxes.length - 1) * gap; const startTop = (window.innerHeight - totalHeight - totalGap) / 2; let currentTop = startTop; tipBoxes.forEach((box) => { box.style.top = `${currentTop}px`; currentTop += box.offsetHeight + gap; }); } /* 创建并显示悬浮提示框 */ function showTipsBox(text, color = "black") { const popup = document.createElement("div"); // popup.textContent = text; // 将字符串中的 \n 替换为 <br> const textWithBreaks = text.replace(/\n/g, "<br>"); popup.innerHTML = textWithBreaks; // 设置基本样式 popup.style.position = "fixed"; popup.style.left = "50%"; popup.style.transform = "translateX(-50%)"; popup.style.color = color; // 字体颜色 popup.style.fontSize = "22px"; // 字体大小 popup.style.backgroundColor = "lightblue"; // 背景色 popup.style.opacity = "0.6"; // 透明度 popup.style.padding = "15px"; popup.style.zIndex = "10000"; // 前置等级 popup.style.textAlign = "center"; // 设置文本水平居中 popup.style.border = "none"; // 去除边框 popup.style.borderRadius = "10px"; // 添加圆角 document.body.appendChild(popup); tipBoxes.push(popup); setTipBoxesPosition(); // 计算并设置所有提示框的位置 // 定时移除提示框 setTimeout(() => { document.body.removeChild(popup); const index = tipBoxes.indexOf(popup); if (index > -1) { tipBoxes.splice(index, 1); setTipBoxesPosition(); // 计算并设置所有提示框的位置 } }, 8000); } /* 添加事件侦听器 */ function addMyEventListener() { let isDragging = false; let initialX, initialY, currentX, currentY; (startX = 0), (startY = 0); // 全局变量 // 鼠标按下事件处理函数 const handleMouseDown = (e) => { isDragging = true; initialX = e.clientX; initialY = e.clientY; startX = buttonGroup.style.left; startY = buttonGroup.style.top; }; // 鼠标抬起事件处理函数 const handleMouseUp = () => { isDragging = false; }; // 鼠标移动事件处理函数 const handleMouseMove = (e) => { if (isDragging) { currentX = e.clientX; currentY = e.clientY; const diffX = currentX - initialX; const diffY = currentY - initialY; const left = parseInt(buttonGroup.style.left) + diffX; const top = parseInt(buttonGroup.style.top) + diffY; buttonGroup.style.left = left + "px"; buttonGroup.style.top = top + "px"; initialX = currentX; initialY = currentY; } }; // 绑定事件 buttonGroup.addEventListener("mousedown", handleMouseDown); document.addEventListener("mouseup", handleMouseUp); document.addEventListener("mousemove", handleMouseMove); } function main() { addMyEventListener(); // 添加事件侦听器 var button = buttonBox("填写数据"); // 按钮点击事件处理函数 button.addEventListener("click", async function () { const result = disabledButtonGroup(true, this); // 禁用按钮 if (result) { showTipsBox(`请联系作者!`, "red"); } disabledButtonGroup(false, this); // 启用按钮 }); } main();