通过鼠标选中文本,在选中文本上,使用浏览器自带的右击事件,弹出菜单后,选中文本扔保持着选中状态。但是使用js自定义右击事件在选中文本上右击后,文本的选中状态就会消失,想问一下有没有什么解决办法,让选中文本一直保持选中状态。求大佬帮帮忙!!!!
第一张图是系统默认的右击事件,后面三张图是自定义右击代码,因为自定义右击后,选中状态会消失,所以页面上没有什么痕迹
上传一个可运行的 html 看看
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>
不知道行不行
谢谢,不过不是很合适。我们的需求是鼠标选中文本,然后右击选中文本出现自定义菜单,然后进行一些操作。但是在做鼠标右击出现自定义菜单的动作后,选中的文本那个选中交互状态消失了,体验不是多好。所以你说的这个方法不太合适