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>
相关推荐
无羡仙31 分钟前
从零构建 Vue 弹窗组件
前端·vue.js
源心锁2 小时前
👋 手搓 gzip 实现的文件分块压缩上传
前端·javascript
源心锁2 小时前
丧心病狂!在浏览器全天候记录用户行为排障
前端·架构
GIS之路2 小时前
GDAL 实现投影转换
前端
phltxy2 小时前
从零入门JavaScript:基础语法全解析
开发语言·javascript
烛阴2 小时前
从“无”到“有”:手动实现一个 3D 渲染循环全过程
前端·webgl·three.js
BD_Marathon3 小时前
SpringBoot——辅助功能之切换web服务器
服务器·前端·spring boot
Kagol3 小时前
JavaScript 中的 sort 排序问题
前端·javascript
eason_fan3 小时前
Service Worker 缓存请求:前端性能优化的进阶利器
前端·性能优化
光影少年3 小时前
rn如何和原生进行通信,是单线程还是多线程,通信方式都有哪些
前端·react native·react.js·taro