js右击自定义菜单

功能点:右击阻止默认事件 根据js提供方法window.getSelection()判断当前有值则出现菜单

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .box {
            width: 500px;
            height: 500px;
            border: 1px solid red;
            margin: 100px auto;
            overflow: auto;
        }

        .cur {
            position: relative;
        }

        ul {
            padding: 5px 20px;
            position: absolute;
            display: none;
            background: red;
            z-index: 666;
            color: white;
            list-style: none;

            li {
                cursor: pointer;
            }
        }
    </style>
</head>

<body>
    <div class="cur">
        <div class="box"> </div>
        <ul>
            <li class="copy">复制</li>
            <li>1234</li>
            <li>444</li>
        </ul>
    </div>
    <script model="es6">
        const box = document.querySelector('.box')
        const str = "叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。叶辰欣赏着茶杯上的花纹,心中却冷意浮现:"不管如何,有谁敢对朝歌出手,抹杀了便是。";
        const ul = document.querySelector('ul')
        const copy = document.querySelector('.copy')
        var selectedText = ''
        box.innerText = str

        // 点击
        document.onclick = (e) => {
            if (e.target.className == 'copy') {
                const textarea = document.createElement('textarea');
                textarea.value = selectedText;
                document.body.appendChild(textarea);
                textarea.select();
                document.execCommand('copy');
                document.body.removeChild(textarea);
            }
            ul.style.display = 'none';
        }

        // 右击
        document.oncontextmenu = function (e) {
            e.preventDefault();
            selectedText = window.getSelection().toString()
            if (selectedText) {
                if (e.target.className == 'box') {
                    ul.style.top = e.offsetY + 'px';
                    ul.style.left = e.clientX + 'px';
                    ul.style.display = 'block';
                }
            } else {
                ul.style.display = 'none';
            }
        };
    </script>
</body>

</html>
相关推荐
光影少年18 分钟前
react状态管理都有哪些及优缺点和应用场景
前端·react.js·前端框架
晚烛1 小时前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售
saber_andlibert2 小时前
TCMalloc底层实现
java·前端·网络
逍遥德2 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
冻感糕人~2 小时前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
程序员agions2 小时前
2026年,“配置工程师“终于死绝了
前端·程序人生
alice--小文子2 小时前
cursor-mcp工具使用
java·服务器·前端
晚霞的不甘2 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小迷糊的学习记录2 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
ۓ明哲ڪ2 小时前
网页视频倍速播放.
html