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

无锡网络公司无锡网站设计上海排名seo公司

无锡网络公司无锡网站设计,上海排名seo公司,无锡企业网站的建设,wordpress 修改管理员头像1.背景: 最近接到一个需求,在一个类似chatGpt的聊天工具中,要在对话框中设置模板,后端提供了很多模板参数,然后要求将后端返回的特殊字符转成按钮,编辑完成后在相应的位置拼接成字符串。 2.效果&#xff1a…

1.背景:

最近接到一个需求,在一个类似chatGpt的聊天工具中,要在对话框中设置模板,后端提供了很多模板参数,然后要求将后端返回的特殊字符转成按钮,编辑完成后在相应的位置拼接成字符串。


2.效果:

在点击发送后,页面上就是如此拼接后的字符串


当然,还进一步拓展了其功能,比如可以上传文件,解析出来后和其他字符拼接


3.实现

 要注意的是:你和后端约定好特殊字符的格式,比如我这里是的是:

text:"|`社工背景`| 根据信息介绍,请你写一封内容丰富的|`诱饵类型`|电子邮件"

 以下是完整的实现代码

// template 部分
<div id="text-container"> </div>// 功能部分,我封装成了三个函数,使用时updatePageWithText传入即可
function updatePageWithText(textData:any) {const regex = /(\|`[^`]+`\|)/g; // 匹配 |` 和 `| 之间的内容const newText = textData.replace(regex, function (match:any) {// 去除 |` 和 `|,同时为匹配文本创建一个可点击的 spanconst cleanMatch = match.replace(/\|`|`\|/g, '');return `<span class="green-text">${cleanMatch}</span>`;}).replace(/\+/g, ' '); // 把 `+` 替换为空格以正确显示文本const textContainer:any = document.getElementById('text-container');textContainer.innerHTML = newText;// 为所有绿色文本添加点击事件监听const greenTexts = textContainer.querySelectorAll('.green-text');greenTexts.forEach(function (greenText:any) {greenText.addEventListener('click', function () {convertToInput(this);});});
}function convertToInput(element:any) {const input = document.createElement('input');input.type = 'text';input.value = element.textContent;input.className = 'green-text'; // 保持输入框具有相同的类名,这样它的外观与span时相同// 添加失焦事件处理器以在输入结束时替换文本input.addEventListener('blur', function () {finishInput(element, this);});// 添加回车键事件处理器以在按下回车时替换文本input.addEventListener('keydown', function (event) {if (event.key === "Enter") {finishInput(element, this);}});element.replaceWith(input); // 替换 span 元素为输入框input.focus();
}function finishInput(spanElement:any, inputElement:any) {// 创建一个新的span元素来替换输入框const newSpan = document.createElement('span');newSpan.textContent = inputElement.value; // 使用输入框的值newSpan.className = 'green-text'; // 恢复原来的类名,以便保持外观和行为newSpan.addEventListener('click', function () {convertToInput(newSpan); // 添加点击事件,使得新的span也可以被点击并转换});inputElement.replaceWith(newSpan); // 替换输入框为新建的span元素
}

http://www.yidumall.com/news/108518.html

相关文章:

  • 宁波海曙建设局网站现在疫情怎么样了最新消息
  • 广州大型网站制作公司如何建立一个网站平台
  • 网站建设行业有什么认证吗windows优化大师有用吗
  • 地产网站怎么做人工智能培训班
  • 自学网站开发设计优化设计电子课本下载
  • 番禺网站建设哪家好长沙百度推广优化排名
  • 蛋糕店网站模板金蝶进销存免费版
  • 如何建设基层网站正规百度推广
  • 中国建设行业峰会官方网站搜索引擎优化简称seo
  • 网站营销概念有效的网站推广方式
  • 网站显示iis7网络营销网站推广方案
  • 部门网站管理建设工作汇报新浪新闻疫情
  • 怎么将网站做成html网络广告的形式
  • 网站建设公司如何生存全世界足球排名前十位
  • 哪家公司建站比较好建站之星官方网站
  • 湖南邵阳网长春网站seo公司
  • 案例建网站宁波网络营销有哪些
  • 南京专业做网站公司免费软文推广平台
  • 垃圾评论 wordpress搜索引擎优化心得体会
  • 美容美发化妆品培训企业网站源码带后台php织梦dede5.7制作网站的基本流程
  • 网站认证费用百度上海推广优化公司
  • 招考网站开发百度163黄页关键词挖掘
  • 公司网站怎样制作下载百度app下载
  • 全站仪建站流程芭蕉视频app无限次数
  • 陕西网站建设品牌公司推荐百度推广登录入口官网
  • 广州独立站建站如何进行搜索引擎营销
  • 做视频的网站靠什么收入西安网站建设推广专家
  • 做不了飞机要看什么网站辽宁网站建设
  • 做网站机构图用什么工具武汉seo创造者
  • 大连做网站优化公司长沙网络推广小公司