前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript | 选中并获取多行文本框内容的效果

JavaScript | 选中并获取多行文本框内容的效果

作者头像
HTML5学堂
发布于 2018-03-13 08:25:18
发布于 2018-03-13 08:25:18
5.1K00
代码可运行
举报
文章被收录于专栏:HTML5学堂HTML5学堂
运行总次数:0
代码可运行
HTML5学堂(码匠):文本操作一直是开发中不可避免的存在,用户选中的文本内容,是否可以进行获取并处理到需要的位置当中?如果可以,这样的操作到底需要使用到哪些方法呢?

本文主要内容

1. 目标效果展示

2. 涉及的基本属性知识

3. 核心功能-选取的相关知识

1. 目标效果展示

如上,主要实现的是用户自定义选择多行文本框中的任何内容,然后把获取的内容放到按钮下的文本中作为内容的存放,最后通过点击按钮实现内容的设置,从而把用户需要的信息从大量的内容文本中获取出来。实现这种文本操作的功能,就必然需要考虑各方面的属性以及浏览器等兼容问题,接下来就一起来看看吧~~~

2. 涉及的基本属性知识

2.1 innerHTML属性

innerHTML是一个在JS中拥有双向功能的属性,它可以获取对象的内容,同时又可以向对象插入内容。所以在使用JS处理内容时,通常是需要借助标签的innerHTML属性,对标签元素的内容进行修改。即把内容赋值给这个属性即可。如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (var i = 0; i < arr.length; i++) {
    // 填充用户选择到的文本
    con.innerHTML += '<p>' + arr[i] + '</p>';
};

2.2 字符串方法

字符串方法是JS底层操作中经常使用到的一系列方法,本效果中主要是借助了split()方法,这个方法主要是用来实现字符串的切割,得到的是一个字符串数组,其切割的依据在于方法中的参数,参数标记是什么,那就按照这个标记进行切割。如下是依据转义字符“\n”的做字符串切割的书写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var arr = nowText.innerHTML.split('\n');

3. 核心功能-选取的相关知识

本效果是对文本内容的处理操作,其中针对不同的浏览器就存在着不同的兼容处理,具体表现在谷歌、火狐与IE浏览器之间实现相同功能采用不同的方法。其中用户在谷歌、火狐浏览器中选择文本时需要借助getSelection()方法,而IE浏览器则借助的是selection()方法。其具体的用法及区别一起来看吧~

3.1 getSelection()方法

getSelection()方法返回的是一个selection对象,表示的是用户选择到的文本内容,支持谷歌、火狐、苹果等浏览器,具体写法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(window.getSelection) {
    text = window.getSelection();
} else {
    if(document.getSelection) {
        text = document.getSelection();
    } else {
        text = "";
    }
}

3.2 selection对象

selection对象代表的是选中区,即对于文档中用户可执行某些操作的元素与内容。用户和JS都可以创建选中区,用户创建选中区的办法是选中文档的某一部分;JS创建选中区是在文本域等位置调用selection对象。而在IE浏览器中要操作选中区需要先使用createRange()方法创建一个文本域对象,具体使用如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if(document.selection) {
    // document.selection.createRange().htmlText获得包含html的内容
    text = document.selection.createRange().htmlText;
} else {
    text = "";
}

关于完整代码

如需查看完整代码,请前往:http://codepen.io/majiang/pen/NpKyjV/

(有可能因为网络原因,导致加载速度较慢)。

总结

文本操作是前端开发中一块比较复杂的处理操作,究其原因在于各个浏览器都存在着兼容问题,所以在各种使用场景中都需要考虑方法的兼容操作。上文中主要就是为大家讲解Selection对象对于页面文本内容的选中操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 懂点君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript 中获取光标位置
DOM中并没有直接获取光标位置的方法,那么我们只能间接来获取光标位置。DOM支持获取光标选中的范围,我们可以以此为切入点,来获取或定位光标的位置,当选取范围起始点和结束点一样时,就是光标插入的位置。
越陌度阡
2020/11/26
12.5K0
20140920遇到的问题--JAVA----JS------Tomcat7.0+Onselect灵敏度+fakepath等若干问题
相信大家在配置tomcat的时候,运行之后有时候出现一个  8005的问题,这个解决很简单:
wust小吴
2019/07/05
6210
20140920遇到的问题--JAVA----JS------Tomcat7.0+Onselect灵敏度+fakepath等若干问题
文本选择window.getSelection
8.文本选择window.getSelection 例 1.8(文本选择IEFF.html) <html> <head>     <meta http-equiv="content-type" content="text/html; charset=utf-8"/>     <script type="text/javascript">        function fun1(){ if(window.getSelection){//DOM,FF,Webkit,Chrome,IE10 alert("马克-to-win:火狐click事件包括鼠标点下和抬起两个动作,不抬起不算结束,所以可以选择文本。 window.getSelection is "+window.getSelection); selectionText = window.getSelection(); }else if(document.getSelection){//IE10 selectionText = document.getSelection(); }else if(document.selection){//IE6+10- selectionText = document.selection.createRange().text; }else{ selectionText = ""; }            strlen = selectionText.toString();            alert(strlen);   //  alert(document.selection.createRange().text);        }    </script> <body> <body οnclick="fun1();"> <p>Select this textsfsadfsdafsdagfsadgsagsadgfsd</p> sdgsagsadgsafghgfhfh gsadgsaghfghfhgfhf sabhhfghgfhfghfh gsfdghf sdaggfhf gdhfghdf sdagdhg </body> </body> </html>
马克java社区
2021/01/13
8440
文本选择window.getSelection
第56天:选中文字弹出提示框
所以这个的事件一定是  onmouseup  ,盒子显示而且盒子的位置 在  鼠标的 clientX 和 clientY 一模一样
半指温柔乐
2018/09/11
1.7K0
Bookmarklet编写指南
前一段日子,我写了两个Bookmarklet----"短网址生成"和"短网址还原"。 它们用起来很方便,除了我本人之外,其他朋友也在用。第一次发布Bookmarklet,就能有用户,我挺满意的。 下面
ruanyf
2018/04/12
1.5K0
Bookmarklet编写指南
富文本编辑器开发简介
富文本编辑器,Rich Text Editor, 简称 RTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器。
江米小枣
2020/06/15
4.4K0
JS魔法堂:判断节点位置关系
一、前言                             在polyfill querySelectorAll 和写弹出窗时都需要判断两个节点间的位置关系,通过jQuery我们可以轻松搞定,但原生JS呢?下面我将整理各种判断方法,以供日后查阅。 二、祖孙关系                         html <div id="ancestor"> <div id="parent"> <div id="son">son</div> </div> </div> <
^_^肥仔John
2018/01/18
5.3K0
前端富文本基础及实现
在日常生活中我们会经常接触到各种各样的文档格式和形式,其中富文本在文档格式中扮演了重要角色。对于前端而言,富文本产品也层出不穷,其应用也越来越广。
政采云前端团队
2022/12/01
4.6K1
前端富文本基础及实现
「译」利用 JavaScript 复制文本到剪贴板
一个小小的诀窍。实现主题的复制代码功能时,思路刚好和这篇文章差不多,不过这篇文章的代码要更加合理。
Chor
2019/11/07
1.7K0
【译】JavaScript实现文字剪贴板&amp;React版本
目录 怎么使用JavaScript实现一个剪贴 上面的方法不是很完美我们优化一下 思考一个问题 使用react和typescript重写和优化一下 如何使用copyme 原文参考 写在最前面 有一个简单的需求,用户需要快捷的复制一些相关的信息,然后进行下一步信息的填写。前端这里需要做一个剪贴板方便用户体验。想直接参考 react 使用的可以看 使用react和typescript改写和优化一下 大概设计如下,有多条信息,然后用户可以点击右边的复制 icon 进行快捷的复制。 怎么使用JavaScr
西南_张家辉
2022/09/16
8410
【译】JavaScript实现文字剪贴板&amp;React版本
JS 实现复制粘贴功能
接下来,介绍他的使用方式,前提条件,下载clipboard.min.js插件,下载地址:在这里
White feathe
2021/12/08
4.8K0
JS 实现复制粘贴功能
原生JS实现选中文字分享
当我们在阅读某些文章时,会看到一些比较精彩的语句急于分享,下面分享一个选中文字分享的功能,实现类似于下面的效果。
越陌度阡
2020/11/26
6.1K0
原生JS实现选中文字分享
WEB:Range 与 Selection
为了让开发人员更方便地控制页面,“DOM2 级遍历和范围”模块定义了“范围(Range)接口”。通过范围(Range)可以选择文档中的一个区域,而不必考虑节点的界限。
WEBJ2EE
2019/07/19
1.6K0
WEB:Range 与 Selection
在评论输入框中插入表情
最近在做一个后台管理系统,要求可以对前台用户的作品进行评论,而评论要可以输入表情,常规的文字输入框都是用的文本域textarea来做的,但这种输入框只能输入文字,没有办法输入表情图标,这个时候可编辑div就能起到作用了,那么如何在可编辑的div中插入表情呢?
越陌度阡
2020/11/26
4.1K0
复制网页内容自动添加版权信息的方法(兼容IE、Firefox和Chrome)
加上以上代码后,别人在你网站的任何一个页面,复制任何一个文字的东西,粘贴时都会自动带上版权信息。
IT工作者
2022/01/05
1K0
js 实现文本选中与复制
selection api 配合  createRange api 配合 document.execCommand('copy', true)
蓓蕾心晴
2022/10/30
8.9K0
js 实现文本选中与复制
H5 的复制操作
作者:villainthr 一开始,在 Web 端,并没有任何可以接触到 clipborad 的内容。以前,我们想要执行 copy/paste/cut 只能借助 flash。但现在,伟大的 H5 又或
腾讯IVWEB团队
2017/05/10
6.1K2
工作效率:禁止转载-复制 解决方案(知乎、简书)
今天照例进行日常总结,在查找资料进行ctrl+c加ctrl+v时,发现知乎的页面竟然禁止转载了,也就是对复制做了拦截
Freedom123
2024/03/29
6210
工作效率:禁止转载-复制 解决方案(知乎、简书)
双击文本没有被选中
IE浏览器使用document.selection当前用户激活对象选择区域,通过后获取当前用户的操作区document.selection.empty()功能来实现双击选定的文本不起作用。不IE浏览器使用window.getSelection对象选择当前用户激活区域。在获取当前用户操作区域后通过removeAllRanges()函数实现双击不选中文本功能
全栈程序员站长
2022/07/06
2K0
造一个 copy-to-clipboard 轮子
用 JS 来复制文本在网页应用里十分常见,比如 github 里复制 remote 地址的功能:
写代码的海怪
2022/03/29
9180
造一个 copy-to-clipboard 轮子
相关推荐
JavaScript 中获取光标位置
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文