您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
一鍵刪除指定的通知信(預設刪除動畫瘋獲獎通知、【勇者福利社】成功獲得抽獎資格通知信)
// ==UserScript== // @name 巴哈姆特刪信助手 // @namespace https://github.com/vios10009 // @version 1.2 // @description 一鍵刪除指定的通知信(預設刪除動畫瘋獲獎通知、【勇者福利社】成功獲得抽獎資格通知信) // @author vios10009 // @match https://mailbox.gamer.com.tw/* // @icon https://www.google.com/s2/favicons?sz=64&domain=gamer.com.tw // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // ==/UserScript== let bhSlave = document.getElementById("BH-slave"); let newButton = document.createElement("button"); // 自訂要刪除的信件標題列表 const defaultTitles = [ "動畫瘋獲獎通知", "【勇者福利社】成功獲得抽獎資格通知信" ]; // 從 GM_getValue 取得已儲存的標題,如果沒有則使用預設標題 let titlesToDelete = GM_getValue('titlesToDelete', defaultTitles); newButton.innerText = "刪除本頁的指定通知信"; newButton.style.cssText = ` width: 100%; margin-bottom: 10px; height: 2.5rem; background-color: rgb(215, 84, 84); border-radius: 5px; border: 1px solid rgb(179, 59, 59); color: white; `; newButton.onclick = () => { deleteLetters(titlesToDelete) }; bhSlave.insertBefore(newButton, bhSlave.querySelector("h5")); let deleteCount = 0; // 記錄刪除的信件數量 function deleteLetters(titles) { let bhTable = document.querySelector(".BH-table"); let letters = bhTable.querySelectorAll("tr.readU, tr.readR"); let found = false; for (let letter of letters) { let mailTitle = letter.querySelector(".mailTitle").innerText; if (titles.includes(mailTitle)) { letter.querySelector("input[type=checkbox]").checked = true; found = true; deleteCount++; // 累計刪除的信件數量 } } if (found) { // 顯示按鈕區域 document.getElementById("mail-action-area").style.display = "block"; // 啟用刪除按鈕 let deleteButton = document.querySelector("[onclick='mailbox.delMail();']"); if (deleteButton) { deleteButton.classList.remove("is-disabled"); deleteButton.click(); // 觸發刪除 setTimeout(() => { let confirmButton = document.querySelector(".btn-box .btn-primary"); if (confirmButton) { confirmButton.click(); // 自動點擊「確定」 // 等待彈窗處理完畢後再點擊「關閉」 setTimeout(() => { let closeButton = document.querySelector(".btn-box .btn-danger"); if (closeButton) { closeButton.click(); // 自動點擊「關閉」 } // 刪除後重新刪除目前頁面項目 setTimeout(() => deleteLetters(titles), 1000); }, 1500); } }, 500); } } else { // 若當前頁面無可刪除的信件則結束並告知總共刪除的數量 if (deleteCount == 0) { alert(`目前頁面沒有可刪除的信件。`); } else { alert(`刪除完成!總共刪除了 ${deleteCount} 封指定通知信。`); } } } // 新增要刪除的標題 GM_registerMenuCommand("新增要刪除的信件標題", () => { let newTitle = prompt("輸入要刪除的信件標題:"); if (newTitle && !titlesToDelete.includes(newTitle)) { titlesToDelete.push(newTitle); GM_setValue('titlesToDelete', titlesToDelete); alert("已新增標題:" + newTitle); } else { alert("標題無效或重複!"); } }); // 刪除要刪除的標題 GM_registerMenuCommand("刪除要刪除的信件標題", () => { let titleToDelete = prompt("輸入要刪除的信件標題:"); let index = titlesToDelete.indexOf(titleToDelete); if (index > -1) { titlesToDelete.splice(index, 1); GM_setValue('titlesToDelete', titlesToDelete); alert("已刪除標題:" + titleToDelete); } else { alert("找不到該標題!"); } }); // 顯示目前設定的標題 GM_registerMenuCommand("顯示目前設定的標題", () => { if (titlesToDelete.length > 0) { let titleList = titlesToDelete.join("\n"); // 建立彈出視窗的 textarea let textarea = document.createElement("textarea"); textarea.value = titleList; textarea.style.width = "400px"; textarea.style.height = "200px"; textarea.style.position = "fixed"; textarea.style.top = "50%"; textarea.style.left = "50%"; textarea.style.transform = "translate(-50%, -50%)"; textarea.style.zIndex = "9999"; textarea.style.padding = "10px"; textarea.style.border = "1px solid #ccc"; textarea.style.background = "white"; textarea.style.fontSize = "14px"; document.body.appendChild(textarea); textarea.select(); // 自動選取內容,方便複製 // 當點擊其他地方時,自動關閉 textarea textarea.onblur = () => document.body.removeChild(textarea); } else { alert("目前沒有設定任何標題。"); } });