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>
相关推荐
贪婪的君子3 分钟前
【每日一面】实现一个深拷贝函数
前端·js
那年窗外下的雪.11 分钟前
鸿蒙ArkUI布局与样式进阶(十五)—— 模块化 · 自定义组件 · 泛型机制深度解析
javascript·华为·typescript·harmonyos·鸿蒙·arkui
一点七加一1 小时前
Harmony鸿蒙开发0基础入门到精通Day09--JavaScript篇
开发语言·javascript·ecmascript
_安晓1 小时前
Rust 中精确大小迭代器(ExactSizeIterator)的深度解析与实践
java·前端·python
烛阴1 小时前
从create到yield:Lua协程完全上手指南
前端·lua
薛一半2 小时前
Vue3的Pinia详解
前端·javascript·vue.js
浅影歌年2 小时前
vue3模块中引用公共css变量文件
前端
盼哥PyAI实验室3 小时前
从搭建到打磨:我的纯前端个人博客开发复盘
前端·javascript
前端初见3 小时前
2025前端面试题大合集
前端
用户904706683573 小时前
vue3.5新特性——useTemplateRef
前端