首页 新闻 搜索 专区 学院

在选中文本上自定义鼠标右击事件,保持文本的选中状态

0
悬赏园豆:100 [待解决问题]

通过鼠标选中文本,在选中文本上,使用浏览器自带的右击事件,弹出菜单后,选中文本扔保持着选中状态。但是使用js自定义右击事件在选中文本上右击后,文本的选中状态就会消失,想问一下有没有什么解决办法,让选中文本一直保持选中状态。求大佬帮帮忙!!!!
第一张图是系统默认的右击事件,后面三张图是自定义右击代码,因为自定义右击后,选中状态会消失,所以页面上没有什么痕迹

九千岁的主页 九千岁 | 初学一级 | 园豆:102
提问于:2021-10-19 16:51
< >
分享
所有回答(1)
0

上传一个可运行的 html 看看

小小高 | 园豆:1037 (小虾三级) | 2021-10-19 16:57

js 版本的。

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <span id="btn1">请F12看一下你的Console</span>
    <script type="text/javascript">
        //这一步是为了阻止右击时系统默认的弹出框
        document.getElementById("btn1").oncontextmenu = function (e) {
            e.preventDefault();
        };
        //在这里你就可以自己定义事件的函数啦
        document.getElementById("btn1").onmouseup = function (oEvent) {
            if (!oEvent) oEvent = window.event;
            if (oEvent.button == 2) {
                console.log("当前选中的文本:" + window.getSelection().toString())
            }
        }
    </script>
</body>

</html>
支持(0) 反对(0) 小小高 | 园豆:1037 (小虾三级) | 2021-10-20 13:40

 不知道行不行

支持(0) 反对(0) 小小高 | 园豆:1037 (小虾三级) | 2021-10-20 13:40

谢谢,不过不是很合适。我们的需求是鼠标选中文本,然后右击选中文本出现自定义菜单,然后进行一些操作。但是在做鼠标右击出现自定义菜单的动作后,选中的文本那个选中交互状态消失了,体验不是多好。所以你说的这个方法不太合适

支持(0) 反对(0) 九千岁 | 园豆:102 (初学一级) | 2021-10-22 14:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册