javascript - 在 contenteditable div 中的 carret 位置之前或之后返回单词的范围对象
问题描述
经过研究,我遇到了@Tim Down 的几个答案,但仍然没有解渴。我想要的是删除包含在 contenteditable div 中的 carret 之前或之后的单词的范围内容。假设 | 代表carret位置。
示例:@TimDown 是一个#GoodJavascriptProgrammer| 和 ....
如果我单击删除按钮,我应该删除包含# 符号的单词#GoodJavascriptProgrammer 并将光标设置回其位置。看我的小提琴删除carret之前的最后一个字符串
function delete_last_word_at_carret(el){
if(window.getSelection){//Webkits and Firefox code
var sel=document.getSelection();
if(sel.getRangeAt && sel.rangeCount){
range=sel.getRangeAt(0);//assume this is required range
range.deleteContents();
//the word #GoodJavascriptProgrammer should be deleted
//and cursor set back to the right position
set_cursor();
}
}
else if(document.selection){//IE code
//help with code here
}
}
function set_cursor(){
//return cursor
}
//click the delete button
$('.delete_bt').click(function(){
var el=document.getElementById('editable_div');
delete_last_word_at_carret(el);
});
解决方案
推荐阅读
- python - Python:根据行上的值选择要绘制的列
- django - Django,DRF:如何在使用 POSTMAN 进行 API 调用时发送权限类详细信息?
- graphql - 如何查询富文本中的图像
- kubernetes - 使用 event-listener 和 fluent-bit 在 grafana 仪表板上记录 presto 查询
- python - pandas DataFrame 创建单值输出的函数
- docusignapi - 在 DocuSign 门户中更正信封后,不会向集成应用程序发送任何事件通知
- node.js - PDF 在 Google Cloud Functions 上的格式不正确
- sql - 查询每个学生证每月的出勤人数
- c# - Azure Cosmos DB (SQL API) SDK 批量插入优化和性能
- flutter - Dart:我们可以用一些工具修复所有的 prefer_constant_constructors 吗?