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>
相关推荐
芒果茶叶17 小时前
并行SSR,SSR并行加载
前端·javascript·架构
vortex518 小时前
解决 Kali 中 Firefox 下载语言包和插件速度慢的问题:配置国内镜像加速
前端·firefox·腾讯云
修仙的人18 小时前
Rust + WebAssembly 实战!别再听说,学会使用!
前端·rust
maxine18 小时前
JS Entry和 HTML Entry
前端
用户633107761236618 小时前
Who is a Promise?
前端
威风的虫18 小时前
JavaScript中的axios
开发语言·javascript·ecmascript
比老马还六18 小时前
Blockly元组积木开发
前端
笨笨狗吞噬者18 小时前
【uniapp】小程序体积优化,JSON文件压缩
前端·微信小程序·uni-app
bot55566619 小时前
“企业微信iPad协议”静默 72 小时:一台被遗忘的测试机如何成为私域的逃生梯
javascript·面试
西洼工作室19 小时前
浏览器事件循环与内存管理可视化
前端·javascript·css·css3