第56天:选中文字弹出提示框

简介: 一、选中文字弹出提示框选择文字:  这个弹出的层 选中的时候不出来,弹起鼠标的时候才出现 。 所以这个的事件一定是  onmouseup  ,盒子显示而且盒子的位置 在  鼠标的 clientX  和 clientY 一模一样用来判断选择的文字二、获得用户选择内容window.

一、选中文字弹出提示框

选择文字:  这个弹出的层 选中的时候不出来,弹起鼠标的时候才出现

 所以这个的事件一定是  onmouseup  ,盒子显示而且盒子的位置 在  鼠标的 clientX  clientY 一模一样

用来判断选择的文字

二、获得用户选择内容

window.getSelection()     标准浏览器

document.selection.createRange().text;      ie 获得选择的文字

兼容性的写法:

if(window.getSelection)
{
    txt = window.getSelection().toString();   // 转换为字符串
}
else
{
    txt = document.selection.createRange().text;   // ie 的写法

}

案例代码:

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>选中文字弹出提示</title>
 6     <style>
 7         #test{
 8             width: 400px;
 9             margin:50px;
10         }
11         #another{
12             width: 400px;
13             margin:50px;
14         }
15         #demo{
16             width: 100px;
17             height: 100px;
18             background-color: yellow;
19             position: absolute;
20             top:0;
21             left:0;
22             display: none;
23         }
24     </style>
25 </head>
26 <body>
27 <div id="demo"></div>
28 <div id="test">
29     我要复制的文字我要复制的文字我要复制的文字我要复制的文字我要复制的文字
30     我要复制的文字我要复制的文字我要复制的文字我要复制的文字我要复制的文字
31     我要复制的文字我要复制的文字我要复制的文字我要复制的文字我要复制的文字
32 </div>
33 <div id="another">
34     我不要的文字我不要的文字我不要的文字我不要的文字我不要的文字我不要的文字
35     我不要的文字我不要的文字我不要的文字我不要的文字我不要的文字我不要的文字
36     我不要的文字我不要的文字我不要的文字我不要的文字我不要的文字我不要的文字
37 </div>
38 </body>
39 </html>
40 <script>
41     function $(id){return document.getElementById(id);}
42     $("test").onmouseup=function(){
43         var event=event||window.event;
44         var x=event.clientX;//鼠标的x坐标
45         var y=event.clientY;
46         var txt;//存文字的变量
47         if(window.getSelection){//获取选中的文字
48             txt=window.getSelection().toString();//转换为字符串
49         }else{
50             txt=document.selection.createRange().text;//IE的写法
51         }
52         //判断是否选中了文字
53         if(txt){//所有字符串都为真,空为假,所有数字都为真,0为假
54             showBox(x,y,txt);//调用函数
55         }
56 
57     }
58     document.onmousedown=function(event){
59         var event=event||window.event;
60         var targetId=event.target?event.target.id:event.srcElement.id;
61         if(targetId!="demo"){
62             $("demo").style.display="none";
63         }
64     }
65     function showBox(mousex,mousey,contentText){//相关操作
66         setTimeout(function(){
67             $("demo").style.display="block";
68             $("demo").style.left=mousex+"px";
69             $("demo").style.top=mousey+"px";
70             $("demo").innerHTML=contentText;}
71                 ,100)
72 
73     }
74 </script>

运行效果:

 

相关文章
|
9月前
|
存储 安全 Linux
Kali Linux 2025.2 发布 (Kali 菜单焕新、BloodHound CE 和 CARsenal) - 领先的渗透测试发行版
Kali Linux 2025.2 发布 (Kali 菜单焕新、BloodHound CE 和 CARsenal) - 领先的渗透测试发行版
533 0
|
缓存 监控 开发者
解锁Micronaut性能极限:看高手如何在毫秒间赢得竞争!
【9月更文挑战第9天】随着微服务架构的普及,开发者对应用性能的要求不断提高。Micronaut作为一款轻量级、模块化的全栈框架,在性能优化方面具备显著优势。本文将详细介绍如何在Micronaut项目中实现性能优化,涵盖代码层面、异步编程、缓存机制及部署策略等多个方面。通过合理规划依赖注入、使用异步编程模式、引入缓存机制并采用高效的容器化方案,开发者可以全面提升应用性能。
292 4
|
存储 安全 Docker
直接停掉docker后镜像都没了
7月更文挑战第12天
2397 7
|
SQL 数据库
MyBatisPlus之逻辑删除、MyBatisPlus解决并发问题的乐观锁机制
MyBatisPlus之逻辑删除、MyBatisPlus解决并发问题的乐观锁机制
671 2
|
Python
Python多进程间通信的最佳实践
Python多进程间通信的最佳实践
671 0
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
2034 1
|
SQL 存储 设计模式
数据湖选型指南|Hudi vs Iceberg 数据更新能力深度对比
数据湖作为新一代大数据基础设施,近年来持续火热。在计划升级数据湖架构的客户中,支持数据的事务更新通常是大家的第一基础诉求。本文我们就为大家详细解析不同数据湖架构在数据事务上的能力对比,帮助大家在数据湖选型之路上做出更好的决定。这是「数据湖选型」系列的第一期,后续还将陆续推出,希望大家和我们共同探讨~
2107 0
数据湖选型指南|Hudi vs Iceberg 数据更新能力深度对比
|
JavaScript Java 数据库
订单服务-----功能实现逻辑2
订单服务-----功能实现逻辑2
443 0
|
数据库
基于SpringBoot+MybatisPlus+vue的为二手车交易市场管理系统
基于SpringBoot+MybatisPlus+vue的为二手车交易市场管理系统
326 0
基于SpringBoot+MybatisPlus+vue的为二手车交易市场管理系统

热门文章

最新文章