第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>

运行效果:

 

相关文章
|
Linux Docker 容器
在anolis 8.4上安装docker-ce
在anolis的软件仓库中并没有docker-ce套件,那么该如何安装docker-ce呢?
3385 1
在anolis 8.4上安装docker-ce
|
SQL Java 数据库连接
初识MyBatis(搭建MyBatis、简单增删改查、核心配置文件讲解及获取参数值)
初识MyBatis(搭建MyBatis、简单增删改查、核心配置文件讲解及获取参数值)
343 0
|
前端开发 安全 容器
CSS如何优雅实现卡片多行排列布局?
【8月更文挑战第24天】CSS如何优雅实现卡片多行排列布局?
864 3
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER(上海蓝云阻断页)
在Azure App Service上部署的应用遇到`SSL: WRONG_VERSION_NUMBER`错误。问题可能由不兼容的TLS版本引起,但即使将最小入站TLS版本改为1.2,问题仍存在。实际原因是上海蓝云的阻断页面,表明网站未完成ICP备案或有安全规定限制。解决方案包括:1) 对App Service绑定自定义域名并进行ICP备案,或2) 使用Application Gateway处理公网请求。在复杂环境中,需仔细排查和适配规则。
497 11
|
Web App开发 存储 API
折腾Chrome插件,让内容脚本与文本交互~
折腾Chrome插件,让内容脚本与文本交互~
435 0
|
缓存 搜索推荐 前端开发
《VitePress 简易速速上手小册》第6章 性能优化与 SEO(2024 最新版)
《VitePress 简易速速上手小册》第6章 性能优化与 SEO(2024 最新版)
635 1
|
存储 前端开发 JavaScript
【亮剑】在React中,处理`onScroll`事件可实现复杂功能如无限滚动和视差效果
【4月更文挑战第30天】在React中,处理`onScroll`事件可实现复杂功能如无限滚动和视差效果。类组件和函数组件都能使用`onScroll`,通过`componentDidMount`和`componentWillUnmount`或`useEffect`添加和移除事件监听器。性能优化需注意节流、防抖、虚拟滚动、避免同步计算和及时移除监听器。实战案例展示了如何用Intersection Observer和`onScroll`实现无限滚动列表,当最后一项进入视口时加载更多内容。合理利用滚动事件能提升用户体验,同时要注意性能优化。
778 0
|
机器学习/深度学习 Java Nacos
Nacos实战之配置中心与注册中心详解
Nacos实战之配置中心与注册中心详解
Nacos实战之配置中心与注册中心详解
|
缓存 安全 前端开发
Verdaccio私仓搭建的一些注意点和姿势
为什么会搞这个? 是想把我们公司的npm私有仓从nexus迁移出来. 我们目前和后端共用nexus,因为nexus也能管理maven这些! npm私有仓库独立出来,后续好推向整个公司!! 我们这里采用docker自己部署(用的是v4.6.x),方便后续滚动更新. 配置文件及模块缓存目录是从外部映射进去,维护比较弹性 外网访问是通过nginx代理,内网集群是通过安全组策略授权.
1586 0
|
存储
【VBA代码解决方案】md文档转Word后,全自动转换为标准的Word公式格式
【VBA代码解决方案】md文档转Word后,全自动转换为标准的Word公式格式
540 0