当前位置: 首页 > news >正文

如何实现一个可插入自定义标签的文本输入框

核心功能

点击按钮插入标签 → 编辑区显示标签文字 → 转换时提取为占位符($xxx$),也支持反向渲染。

功能拆分

1、字段标签配置:

const fieldBtnList = ref([ { label: '字段1', value: '$field1$' }, { label: '字段2', value: '$field2$' }, { label: '字段3', value: '$field3$' }, { label: '字段4', value: '$field4$' }, ]);

2、点击标签并插入文本框

function setDocumentNode(field) { const tag = document.createElement('span'); tag.textContent = field.label; tag.contentEditable = 'false'; tag.style.cssText = `padding: 0 3px;color: #5E8CFF;font-weight: 650;display: inline-block;cursor: default;`; tag.dataset.value = field.value; return tag; } // 修复光标 + 连续插入 async function insertTag(field) { const editor = editorRef.value; await editor.focus(); await nextTick(); const selection = window.getSelection(); if (!selection.rangeCount) return; const range = selection.getRangeAt(0); range.deleteContents(); const tag = setDocumentNode(field); range.insertNode(tag); // 插入零宽空格保证光标正常 const space = document.createTextNode('\u200B'); range.setStartAfter(tag); range.insertNode(space); range.setStartAfter(space); range.setEndAfter(space); selection.removeAllRanges(); selection.addRange(range); cleanEmptyNodes(editor); }

3、标签富文本转换为指定字符串模版:

http://www.jsqmd.com/news/615651/

相关文章:

  • 从零构建可审计、可回滚、可监控的向量检索服务:EF Core 10架构设计图+DDD分层实践(含GitHub可运行Demo)
  • 2026档案室密集柜推荐榜:档案室用密集柜/档案智能密集柜/橱式密集柜/电动密集柜/电动密集档案柜/移动档案密集柜/选择指南 - 优质品牌商家
  • OpenClaw插件开发:为Qwen3-14b_int4_awq添加钉钉通道支持
  • 电容是什么?一个“快充快放”的微型充电宝坷
  • 毕业设计实战:基于SSM+MySQL的社区医疗服务预约管理系统设计与实现指南
  • 别再踩坑了!SQL Server数据类型那点事儿,看懂这篇少背三个锅竟
  • 嵌入式系统开发:硬件思维与架构实践
  • 一个进程是 host root vs docker root
  • Linux I/O 演进史:从管道到零拷贝,一篇串起个服务端核心原语纠
  • OpenClaw技能组合策略:Qwen3-32B在复杂工作流中的模块化调用
  • 金融PHP支付配置终极Checklist(2024Q3央行金融科技新规适配版):58项必检条目,漏1项即触发监管通报
  • 绵阳高新区小学晚托自习
  • A Gift from the Integration of Discriminative andDiffusion-based Generative Learning: BoundaryRefi
  • OpenClaw配置备份指南:gemma-3-12b-it环境快速迁移与恢复
  • 嵌入式文件传输协议选型与优化实践
  • OpenClaw备份恢复方案:Qwen3-32B任务历史与技能配置迁移
  • OpenClaw代码审查:Qwen3.5-9B自动化质量检查
  • 2026武汉高评价日常保洁TOP10推荐:武汉物业保洁公司/武汉企业保洁公司/武汉保洁公司/武汉保洁外包公司/武汉保洁托管公司/选择指南 - 优质品牌商家
  • 嵌入式通信协议的状态机接收模块设计与优化
  • 2026年可靠熔体流动速率仪TOP推荐:简支梁冲击试验机/落锤冲击试验机/制样机/差热/差示扫描量热仪/开闭孔率测定仪/选择指南 - 优质品牌商家
  • SpringCloud-Stream + RocketMQ/Kafka
  • Boodskap数字孪生Arduino客户端库深度解析
  • 【Java】通过Mybatis Plus自带的方式,实现公共字段自动填充。
  • Google 修改账户归属地
  • AI编程实战:从零到一搭建全栈项目胺
  • 国内半导体展哪家好?盘点2026年实力半导体展为企业搭建桥梁 - 品牌2026
  • Spring Cloud进阶--分布式权限校验OAuth眯
  • 潘多拉魔盒上的封条:当AI强到连“造物主”都感到恐惧
  • 基于MATLAB/Simulink的纯电动汽车模型( (包括驾驶员模型,电机模型,电池模型,传动模型,纵向动力学模型)
  • 2026膏药公司TOP5推荐:纯中药膏药/老黑膏/热熔胶膏药/黑膏药/膏药/选择指南 - 优质品牌商家