您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在帳號管理增加密碼欄位及匯出清單功能
// ==UserScript== // @namespace https://openuserjs.org/users/a29527806 // @name 眾至郵件伺服器增加密碼欄位及匯出清單功能 // @description 在帳號管理增加密碼欄位及匯出清單功能 // @copyright 2022, HrJasn (https://openuserjs.org/users/a29527806) // @license GPL-3.0-or-later // @version MS6410_3.1.0.2_v1.1 // @icon https://www.google.com/s2/favicons?domain=125.185 // @match http*://*/index.php?menu=user&func=user // @grant none // ==/UserScript== // ==OpenUserJS== // @author a29527806 // ==/OpenUserJS== (function() { window.onload = function(){ var list_table_content = document.querySelector("table.list_table_content"); var ShowPWDLink = document.createElement("a"); ShowPWDLink.appendChild(document.createTextNode("顯示密碼")); ShowPWDLink.href = "javascript:void(0);"; //ShowPWDLink.style.display = "block"; ShowPWDLink.style = "color:white;padding:5px;"; var getExpPos = document.querySelector('table.list_table_page > tbody > tr > td[align="left"]'); getExpPos = getExpPos.appendChild(document.createElement("span")); getExpPos.appendChild(ShowPWDLink); ShowPWDLink.onclick = function(){ function sendInfo(accountNumber){ var url = window.location.origin + "/index.php?menu=user&func=user&do=edit&id=" + ActContents[accountCount].querySelector("span > b:nth-child(1)").innerText; if (window.XMLHttpRequest) { passwdrequest = new XMLHttpRequest(); } else if (window.ActiveXObject) { passwdrequest = new ActiveXObject("Microsoft.XMLHTTP"); } try { passwdrequest.onreadystatechange = getpasswdinfo; passwdrequest.open("GET", url, true); passwdrequest.send(); } catch (err) { console.log(err); } } function getpasswdinfo(){ if (passwdrequest.readyState == 4) { var getInfoText = passwdrequest.responseText; var parser = new DOMParser(); var getInfoBody = parser.parseFromString(getInfoText,"text/html").body; var getInfopasswd = getInfoBody.querySelector("input[name='passwd']").value; ActContents[accountCount].nextSibling.nextSibling.innerHTML = getInfopasswd; if(accountCount<(ActContents.length-1)){ accountCount+=1; sendInfo(accountCount); } } }; var winLDStyle = document.createElement("style"); winLDStyle.type = "text/css"; winLDStyle.innerHTML = ` .loader { position: absolute; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); width: 50px; height: 50px; margin: auto; } .loader .loadercircle { position: absolute; width: 38px; height: 38px; opacity: 0; transform: rotate(225deg); animation-iteration-count: infinite; animation-name: orbit; animation-duration: 5.5s; } .loader .loadercircle:after { content: ''; position: absolute; width: 6px; height: 6px; border-radius: 5px; background: #fff; box-shadow: 0 0 9px rgba(255, 255, 255, .7); } .loader .loadercircle:nth-child(2) { animation-delay: 240ms; } .loader .loadercircle:nth-child(3) { animation-delay: 480ms; } .loader .loadercircle:nth-child(4) { animation-delay: 720ms; } .loader .loadercircle:nth-child(5) { animation-delay: 960ms; } .loader .loaderbg { position: absolute; width: 70px; height: 70px; margin-left: -16px; margin-top: -16px; border-radius: 13px; background-color: rgba(0, 153, 255, 0.69); animation: bgg 16087ms ease-in alternate infinite; } @keyframes orbit { 0% { transform: rotate(225deg); opacity: 1; animation-timing-function: ease-out; } 7% { transform: rotate(345deg); animation-timing-function: linear; } 30% { transform: rotate(455deg); animation-timing-function: ease-in-out; } 39% { transform: rotate(690deg); animation-timing-function: linear; } 70% { transform: rotate(815deg); opacity: 1; animation-timing-function: ease-out; } 75% { transform: rotate(945deg); animation-timing-function: ease-out; } 76% { transform: rotate(945deg); opacity: 0; } 100% { transform: rotate(945deg); opacity: 0; } } `; document.head.appendChild(winLDStyle); var passwdrequest; accountCount = 0; var ActTitle = list_table_content.querySelector("thead > tr > td:nth-child(2)"); var PWDCol = document.createElement('td'); PWDCol.innerHTML = "密碼"; ActTitle.parentNode.insertBefore(PWDCol,ActTitle.nextSibling.nextSibling); var ActContents = list_table_content.querySelectorAll("tbody > tr > td:nth-child(2)"); ActContents.forEach(function(e){ var NewPWDTD = document.createElement('td'); e.parentNode.insertBefore(NewPWDTD,e.nextSibling.nextSibling); var NewPWDTD_Loader = document.createElement('div'); NewPWDTD_Loader.classList.add('loader'); var NewPWDTD_bg = document.createElement('div'); NewPWDTD_bg.classList.add('loaderbg'); NewPWDTD_Loader.appendChild(NewPWDTD_bg); var NewPWDTD_Circle = document.createElement('div'); NewPWDTD_Circle.classList.add('loadercircle'); for(i=0;i<5;i++){ NewPWDTD_Loader.appendChild(NewPWDTD_Circle.cloneNode(true)); } NewPWDTD.appendChild(NewPWDTD_Loader); }); sendInfo(0); } var downloadLink = document.createElement("a"); downloadLink.appendChild(document.createTextNode("匯出清單")); downloadLink.href = "javascript:void(0);"; //downloadLink.style.display = "block"; downloadLink.style = "color:white;padding:5px;"; getExpPos.appendChild(downloadLink); downloadLink.onclick = function() { function BuildCSV(csv, filename) { var csvFile; var tmpDLLink; csvFile = new Blob(["\ufeff"+csv], {type: "text/csv;charset=utf-8"}); tmpDLLink = document.createElement("a"); tmpDLLink.download = filename; tmpDLLink.href = window.URL.createObjectURL(csvFile); tmpDLLink.style.display = "none"; var getExpPos = document.querySelector('table.list_table_page > tbody > tr >td[align="left"]'); getExpPos.appendChild(tmpDLLink); tmpDLLink.click(); } var csv=[],rows = list_table_content.querySelectorAll("tr"); for (var i = 0; i < rows.length; i++) { var row = [], cols = rows[i].querySelectorAll("td"); for (var j = 1; j < cols.length-1; j++){ var setCSVValue; if(cols[j].innerText == ""){ if(cols[j].querySelector("div > img")){ setCSVValue = cols[j].querySelector("div > img").src; }else{ if(cols[j].querySelector("img")){ setCSVValue = cols[j].querySelector("img").src; }else{ setCSVValue = cols[j].innerText; } } }else{ setCSVValue = cols[j].innerText; } setCSVValue = setCSVValue.replace(/https:\/\/.*\/imgs\/createDate\.png/,'建立日期'); setCSVValue = setCSVValue.replace(/https:\/\/.*\/imgs\/activeEmail\.png/,'啟用狀態'); setCSVValue = setCSVValue.replace(/https:\/\/.*\/imgs\/enable\.png/,'啟用'); setCSVValue = setCSVValue.replace(/https:\/\/.*\/imgs\/disable\.png/,'停用'); setCSVValue = setCSVValue.replace(/https:\/\/.*\/imgs\/functions\.png/,''); row.push('"' + setCSVValue + '"'); } csv.push(row.join(",")); } BuildCSV(csv.join("\r\n"), document.title + '_郵件帳號清單_'+new Date().toString()+'.csv'); } } })();