首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript 中获取光标位置

DOM支持获取光标选中范围,我们可以以此为切入点,来获取或定位光标的位置,当选取范围起始点和结束点一样,就是光标插入位置。 1.1. 术语 anchor:选区起点。 focus:选区终点。...collapseToStart():取消当前选区,并把光标定位在原选区最开始处,如果此时光标所处位置是可编辑,且它获得了焦点,则光标会在原地闪烁。...collapseToEnd():取消当前选区,并将光标定位到原选取最末位,如果此时光标所处位置是可编辑,且它获得了焦点,则光标会在原地闪烁。...cloneContents():克隆一个range内容片段。 deleteContents():删除range内容片段。...> 可编辑div: <div contenteditable="true" class="edit-div" onclick="getCursortPosition

11.9K21
您找到你想要的搜索结果了吗?
是的
没有找到

【留言板】可编辑输入框操作总结

闲暇之余,用于加深自己对基础了解,徒手撸了一个留言板:输入框。废话少说,进入正题。简陋效果如下(下载代码): 一、定义需求 输入文本,以及插入表情。...兼容性:IE与标准浏览器 二、详细设计 根据需求,我们大致可以想到如下问题: 兼容性处理 事件绑定兼容性 可编辑输入框表情插入兼容性 获取数据兼容性 三个模块 留言板与ui交互模块 表情展示模块...classList在ie8-不支持问题,暂时选择用setAttribute代替 appendChild全都支持,append在chrome中支持,但ie不支持 2....: range(选区):IE与标准浏览器兼容性,值得注意IE操控选区,需要让被操控元素(也就是选区所在元素)获取焦点,否则会失败。...)" >获取内容

1.4K100

Quill编辑器介绍及扩展

能找到这个NB编辑器是因为公司项目需要一个可视化cms编辑器,类似微信公众号编辑文章。可以插入各种卡片,模块,问题,图片等等。然后插入内容还需要能删除,拖拽等等。...下面从项目中扩展点找2个说明一下这个NB编辑器,当然他更多扩展功能也没有用上,所以只有看到官方文档,才能理解他扩展性和灵活性。...然后在来一个高级一点。设置字体为粗体 quill默认使用是strong或者b标签方式。其实这也是没有问题,但是架不住公司"高级"前端对手机端所有html标签都reset了。...所以没办法只能使用style方式来实现。 import Inline from '.....詹泽娟 问题,集成到vue,大约是这样子.

3.9K20

前端富文本基础及实现

效果如图: 两者特点 两种方式都可以实现编辑模式,并且这种编辑模式与 textarea 不同,其内部会用块级元素(默认为 div 元素)做换行处理,最终体现在 dom 结构中。...两者不同是:iframe 方式做到样式隔离,内部样式与外部样式不存在污染与冲突( tinymce 实现方式);元素设置 contentEditable 方式( wangEditor 等实现方式)则和其他元素一样受到页面...编辑区域可通过获取编辑元素 innerHTML 拿到对应富文本数据,存入数据库。 网络请求富文本数据设置为富文本容器 innerHTML,即可展示富文本内容。...下列图片简单表明: 结尾(附 Demo) 根据本文介绍内容我们依次了解了前端富文本概念、输入模式实现、选区信息及应用、富文本工具栏实现和富文本数据收集回填。...将这些内容汇总即可实现一个简单前端富文本编辑器。 下方附上本文内容汇总代码 demo ,内含基于 iframe 和 div 元素分别实现富文本编辑器,功能简单,供读者参考。

4.2K50

【富文本】268- 富文本原理了解一下?

我们简要列举下它几个使用方式,大家就知道怎么用了?...所以通常我们可以用 letrange=window.getSelection().getRangeAt(0) 来获取选中内容信息( getRangeAt 接受一个索引值,因为会有多个 Range,而现在只有一个...style 里面如果加上 scope 的话,里面的样式对编辑内容是不生效,因为编辑区里面是后来才创建元素,所以要么删了 scope,要么用 /deep/ 解决(Vue 是这样)。...,代码如下(代码有点多,跳过,知道大致意思就行?)...另外一种方法就是在插入图片之前先对图片进行处理(比如多一步类似裁剪功能)再上传,这样就可以不用在编辑区里面处理图片啦,嘿嘿,目前我就想到这两种方案了,实际工作中采用是第二种方式,因为产品需求不止于旋转

1.9K40

【Web技术】421- 富文本原理介绍

我们简要列举下它几个使用方式,大家就知道怎么用了?...所以通常我们可以用 let range = window.getSelection().getRangeAt(0) 来获取选中内容信息(getRangeAt 接受一个索引值,因为会有多个 Range,...3. style 里面如果加上 scope 的话,里面的样式对编辑内容是不生效,因为编辑区里面是后来才创建元素,所以要么删了 scope,要么用 /deep/ 解决(Vue 是这样)。...,代码如下(代码有点多,跳过,知道大致意思就行?)...另外一种方法就是在插入图片之前先对图片进行处理(比如多一步类似裁剪功能)再上传,这样就可以不用在编辑区里面处理图片啦,嘿嘿,目前我就想到这两种方案了,实际工作中采用是第二种方式,因为产品需求不止于旋转

98620

探索在网页中使用“标注”

” ---- 那么问题来了,现在我想实现这样一个功能:现在「网页翻译」大多是“页面整体翻译”或者“弹框拖入”,少部分是“选中文字后在文字旁弹出一个提示框”,但是这几种方式不管是哪一种都会有一丝丝影响...:比如遮挡页面其余内容、精确度不高等等。... 笔者思路是:当用户鼠标“抬起”,去判断有没有选中文本,如果没有则啥事没有、反之则要将这一部分选中文本替换成标签!...辗转了一上午,想到了一个“取巧方法”:因为选中文本已经是一个dom了,将选中文本都转化为string,然后再用字符串替换替换掉父p标签innerText内容相同之处!...display ---- 笔者开源了微信小程序日期组件扩展:自定义精确到分、秒;自定义位置、颜色、是否用默认样式。

55130

深入理解Shadow DOM v1

W3C文档对象模型(DOM)提供了一个平台和语言无关应用程序编程接口(API),用于表示和操作存储在HTML和XML文档中信息。 通过使用DOM,程序员可以访问、添加、删除或更改元素和内容。...封装是面向对象编程基本特性,它使程序员能够限制对某些对象组件未授权访问。 在此定义下,对象公共访问方法形式提供接口作为与其数据交互方式。这样对象内部表示不能直接被对象外部访问。...Shadow root 是 shadow 树中最顶层节点,是在创建 shadow DOM 被附加到常规DOM节点内容。具有与之关联shadow root节点称为shadow host。...可以在W3C找到Shadow DOM v1完整描述。 浏览器对Shadow DOM v1支持 在撰写本文,Firefox和Chrome已经完全支持Shadow DOM v1。...Shadow DOM API为我们提供了划分DOM范围能力,从而为这个问题提供了一个优雅解决方案。 现在,样式冲突不再是一个令人担忧问题,选择器也不会失控。

1.1K20

Matery之代码块优化

前言   在官方最新版本Matery主题版本中已经优化了代码块问题,但在旧版本Hexo主题Matery中对hexo-prism-plugin只支持高亮显示,而且存在着许多BUG。...比如新版本hexo-prism-plugin已经支持了代码块一键复制和收缩功能,如果不手动对旧版本Matery原有的代码做改动,则代码块显示会存在一些问题。 代码块优化 1....解决代码块复制内容不换行问题 Matery主题在开启复制版权且添加了版权信息后,会导致复制所有内容换行失效,以下将解决这个问题。...if (selection.getRangeAt(0).commonAncestorContainer.nodeName === 'CODE') { newdiv.innerHTML = "" + newdiv.innerHTML + ""; } 至此,代码块优化已经全部完成。

54750

JS魔法堂:判断节点位置关系

一、前言                             在polyfill querySelectorAll 和写弹出窗都需要判断两个节点间位置关系,通过jQuery我们可以轻松搞定,但原生... other common.js var ancestor = document.getElementById...执行 selection.selectAllChildren(parentNode) ,parentNode内容会被高亮,并且原来高亮部分将被取消; 2. chrome下, selection.containsNode...IE5.5~8下没有Selection类型; 关于IE下[object Selection]和[object MSSelection]类型(详细浏览《JS魔法堂:细说Selection和MSSelection...IE5.5~IE8仅有[object MSSelection]类型   获取方式: document.selection       注意:document.selection是IE特有属性。

5.3K50

【Java 进阶篇】深入了解 JavaScript innerHTML 属性

在本文中,我们将重点介绍JavaScript中 innerHTML 属性,它是DOM(文档对象模型)一部分,用于操作和更改HTML元素内容。...DOM 是文档对象模型缩写,它是HTML文档编程接口,允许开发者通过编程方式访问、操作和更新HTML文档内容和结构。...注意事项和安全性 使用 innerHTML 具有强大功能,但也需要注意一些潜在安全性和性能问题: 安全性: 直接使用 innerHTML 从用户输入中创建HTML内容可能导致跨站点脚本攻击(XSS...性能: 操作 innerHTML 会导致页面的重新渲染,这可能降低性能。当你使用 innerHTML 更新大段HTML内容,浏览器必须重新解析和渲染整个内容,这可能会引起性能问题。...因此,在修改大段HTML内容,最好使用其他DOM操作方法,例如 createElement 和 appendChild,减轻性能负担。

39520

你这磨人小妖精——选中文本并标注实现过程

实现分析 一般实现方式是整个页面内容html存起来,用一些特殊标记表示已经高亮: // magic-highlight表示高亮,高亮'666' ` abc def</...html元素渲染即可 但是现在问题来了,我们这是一个现成react页面,是一个详情页,页面的内容是多个接口返回填进去: 标题1 {接口1返回} 标题2 {接口2返回} 我们如果高亮了接口2返回内容,那就意味着接口2返回内容里面有特殊标记: // before 12334666345 // after...对象,其中有一个getRangeAt方法可以获取range对象。...当选择完成,渲染了container,拿到它ref引用,再setstate(当前container元素) 页面内操作完全没问题,但问题来了,当props改变,需要删除元素时候,立刻报错了。

1.9K30

你不知道 DOM 变动观察器:Mutation observer

例如,这里有一个 ,它具有 contentEditable 特性。该特性使我们可以聚焦和编辑元素。...当然,第三方脚本没有提供删除它机制。 使用 MutationObserver,我们可以监测到我们不需要元素何时出现在我们 DOM 中,并将其删除。...还有一些其他情况,例如第三方脚本会将某些内容添加到我们文档中,并且我们希望检测出这种情况何时发生,调整页面,动态调整某些内容大小等。 MutationObserver 使我们能够实现这种需求。...我们是否需要在每个地方都附加一个高亮显示调用,内容加载完成后,高亮内容代码。那很不方便。 并且,如果内容是由第三方模块加载,该怎么办?...当我们停止观察,观察器可能尚未处理某些更改。在种情况下,我们使用: observer.takeRecords() —— 获取尚未处理变动记录列表,表中记录是已经发生,但回调暂未处理变动。

2.1K10

【实战】我是如何在输入框实现@ At功能

) 当前需求拆解 按住shift + @ 时候,弹出通知列表 选择 @用户标签插入当前光标位置中 生成@用户标签规则是:高亮、携带用户ID、一键删除信息、不可以编辑。...文本框要随内容自适应高度 Android、IOS、Web显示多端一致。 具有扩张性,未来评论可能插入图片文件等.... 市面流行方案对比 ps: 方案有很多种方式,适合自己、适合团队才是最佳实践。...$refs.editor)“ 使用ref方式而不是ID方式呢? 使用ref好处是具有良好重用性和范围。因为ref只留在这个组件中,所以当您操作这个ref,它不会干扰其他组件。...(不要问我为什么知道这个问题!!!)。 wangeditor配置只支持固定高度,如果我们想支持文本框最小高度、文字随内容到最大高度xx自适应滑动怎么做呢? <!...七、总结 不要放弃探寻、探究问题本质。

2.4K20

Quill 富文本编辑器简介

凭借其模块化架构和富有表现力 API,你完全自定义满足任何需求。 为什么需要 Quill 内容创建从一开始就是网络核心。...令人惊讶是,大多数富文本编辑器不知道用户编写了什么文本。这些编辑器通过和 Web 开发人员一样方式来查看内容:DOM。...功能不仅是跨平台考虑因素,同时也需要考虑用户和开发人员体验。如果某些内容在 OSX 上 Chrome 中生成特定标记,则会在 IE 上产生相同标记。...placeholder Default:None 编辑内容为空显示占位符。 readOnly Default:false 是否只读模式实例化编辑器。...设置为自适应高度,需要修复滚动跳跃问题,并且由另一个父容器负责滚动。

3.6K20

今天聊聊DOM事件传播机制

这是我参与「掘金日新计划 · 10 月更文挑战」第26天,点击查看活动详情 事件与事件流 事件最早是在 IE3 和 NetscapeNavigator2 中出现,当时是作为分担服务器运算负担一种手段...通过允许一些功能在客户端处理,节省到服务器往返时间。 JavaScript 中采用一个叫做事件监听器东西来监听事件是否发生。...事件流 当浏览器发展到第 4 代(IE4 及 Netscape4),浏览器开发团队遇到了一个很有意思问题:页面的哪一部分会拥有某个特定事件? 想象在一张纸上一组同心圆。...,由于事件冒泡存在,当我们点击 div ,所有祖先元素点击事件也会被触发。... true 表示使用事件捕获方式来触发事件。

96420
领券