长按删除网页元素(带高亮+点击外部关闭)

长按元素显示菜单,可删除选中的元素,带高亮预览和点击外部关闭功能(适合安卓浏览器用)

当前为 2025-09-20 提交的版本,查看 最新版本

// ==UserScript==
// @name         长按删除网页元素(带高亮+点击外部关闭)
// @namespace    custom-longpress-delete
// @version      1.1
// @description  长按元素显示菜单,可删除选中的元素,带高亮预览和点击外部关闭功能(适合安卓浏览器用)
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    let longPressTimer = null;
    let pressedElement = null;
    let originalOutline = null;

    // 创建菜单
    const menu = document.createElement("div");
    menu.id = "longpress-menu";
    menu.style.position = "fixed";
    menu.style.top = "50%";
    menu.style.left = "50%";
    menu.style.transform = "translate(-50%, -50%)";
    menu.style.background = "rgba(0,0,0,0.85)";
    menu.style.color = "#fff";
    menu.style.padding = "12px 18px";
    menu.style.borderRadius = "12px";
    menu.style.zIndex = "2147483647"; // 最大 z-index
    menu.style.fontSize = "16px";
    menu.style.display = "none";
    menu.style.userSelect = "none";
    menu.style.minWidth = "120px";
    menu.style.textAlign = "center";
    menu.style.boxShadow = "0 4px 12px rgba(0,0,0,0.3)";

    const delBtn = document.createElement("div");
    delBtn.innerText = "删除元素";
    delBtn.style.cursor = "pointer";
    delBtn.style.padding = "8px 0";

    delBtn.onclick = () => {
        if (pressedElement) {
            pressedElement.remove();
        }
        hideMenu();
    };

    const cancelBtn = document.createElement("div");
    cancelBtn.innerText = "取消";
    cancelBtn.style.cursor = "pointer";
    cancelBtn.style.padding = "8px 0";
    cancelBtn.style.marginTop = "6px";
    cancelBtn.style.borderTop = "1px solid #555";

    cancelBtn.onclick = hideMenu;

    menu.appendChild(delBtn);
    menu.appendChild(cancelBtn);
    document.body.appendChild(menu);

    function showMenu() {
        menu.style.display = "block";
    }

    function hideMenu() {
        menu.style.display = "none";
        if (pressedElement) {
            // 恢复原始样式
            pressedElement.style.outline = originalOutline || "";
            pressedElement = null;
        }
    }

    // 监听长按
    document.addEventListener("touchstart", function(e) {
        if (e.target.closest("#longpress-menu")) return; // 忽略点击菜单本身

        pressedElement = e.target;
        originalOutline = pressedElement.style.outline;

        longPressTimer = setTimeout(() => {
            e.preventDefault();
            // 高亮元素
            pressedElement.style.outline = "2px solid rgba(255,0,0,0.6)";
            pressedElement.style.outlineOffset = "-2px";
            showMenu();
        }, 600); // 长按 600ms 出菜单
    }, { passive: false });

    document.addEventListener("touchend", function(e) {
        clearTimeout(longPressTimer);

        // 如果点击在菜单外,且菜单已显示 → 关闭菜单
        if (menu.style.display === "block" && !e.target.closest("#longpress-menu")) {
            hideMenu();
        }
    });

    document.addEventListener("touchmove", function() {
        clearTimeout(longPressTimer); // 移动手指则取消
    });

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址