Outlook Mail 邊框調整,添加快捷鍵

邊框調整,添加快捷鍵(Del鍵刪除信件,方向鍵左右上下一封信)

// ==UserScript==
// @name         Outlook Mail 邊框調整,添加快捷鍵
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  邊框調整,添加快捷鍵(Del鍵刪除信件,方向鍵左右上下一封信)
// @author       Shanlan
// @match        https://outlook.office.com/mail/*
// @match        https://outlook.office365.com/mail/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @license      MIT
// ==/UserScript==

// 動態將所有 data-min-width 屬性值改為 50
(function(){
    function setMinWidth(n){
        if(n.nodeType!==1)return;
        if(n.hasAttribute&&n.hasAttribute('data-min-width'))n.setAttribute('data-min-width','50');
        if(n.querySelectorAll)n.querySelectorAll('[data-min-width]').forEach(e=>e.setAttribute('data-min-width','50'));
    }
    setMinWidth(document.body);
    new MutationObserver(m=>m.forEach(x=>x.addedNodes.forEach(setMinWidth)))
        .observe(document.body,{childList:true,subtree:true});
})();

// 左鍵切換前一個
document.addEventListener("keydown", function(event) {
    if (event.keyCode === 37) { // Left
        var btn = document.querySelector('button[title="開啟前一個項目"]');
        if (btn) btn.click();
    }
});

// 右鍵切換下一個
document.addEventListener("keydown", function(event) {
    if (event.keyCode === 39) { // Right
        var btn = document.querySelector('button[title="開啟下一個項目"]');
        if (btn) btn.click();
    }
});

// 新增:Del鍵觸發刪除,但在輸入框或可編輯區域時不生效
document.addEventListener("keydown", function(event) {
    if (event.key === "Delete") {
        const tgt = event.target;
        // 如果焦點在 INPUT、TEXTAREA 或任何 contenteditable 元素內,就跳過
        if (tgt.tagName === "INPUT" || tgt.tagName === "TEXTAREA" || tgt.isContentEditable) {
            return;
        }
        var btn = document.querySelector('button[name="刪除"], button[aria-label="刪除"]');
        if (btn && !btn.disabled && btn.getAttribute("aria-disabled") !== "true") {
            btn.click();
        }
    }
});
长期地址
遇到问题?请前往 GitHub 提 Issues。