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

政务公开网站建设工作情况汇报室内设计公司排行

政务公开网站建设工作情况汇报,室内设计公司排行,网站正在建设中 htmll,定制app开发哪家比较好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.yayakq.cn/news/819228/

相关文章:

  • 建设网站的合同app制作培训班
  • 工业园做网站的公司三亚百度推广公司电话
  • 长春网站排名优化价格山东住房和建设厅网站首页
  • 百度页面推广资源网站优化排名
  • 网站建设外包公司容易被客户投诉吗森动网网站建设好吗
  • 医疗器械网站制作单页网站产品
  • 八宝山做网站公司wordpress和dada
  • 重庆网站建设哪家做的好昆明淘宝网站建设
  • 苏州公司网站建设方案外贸网站建设需求
  • 网站要什么软件做启动 wordpress
  • 白酒网站建设网站专题页怎么做
  • 烟台专业网站建设公司哪家好wordpress 显示下列项目
  • 如何查询网站备案进度查询绍兴的网站建设公司
  • 山东省临沂建设局网站汕头网站推广
  • 做网站的公司销售话术长春做网站哪家便宜
  • 网站建设职位有什么济南建设档案大厦
  • 网站制作流程详解(学做网站第一步)wordpress module破解
  • 软件 网站开发合作协议口碑好的丹阳网站建设
  • 怎么建立信息网站平台南昌做网站哪家公司好
  • 定西市小企业网站建设建设保定 营销型网站建设
  • 华容网站商丘网站建设优化推广
  • 无锡做网站公司有哪些电话广告推广系统
  • 漳州seo建站网站1g空间多大
  • 移动公司营销网站设计网站登陆系统怎么做
  • 徐州企业制作网站上海装修公司口碑哪家好
  • 阿里云建站售前咨询wordpress调用阅读量
  • 深圳 网站开发公司电话沈阳网站制作定制策划
  • wordpress仿站教程百度云房地产新闻最新消息2022
  • 玉树营销网站建设服务重庆做网站的公司
  • 网站搭建 成都wordpress标签组合