Maximo Anywhere移除Work Execution长描述HTML标签求助
解决Work Execution长描述字段HTML标签问题的方案
Hey,我来帮你搞定这个移除HTML标签的问题,一步步来:
一、先写好剥离HTML标签的核心函数
首先你需要一个靠谱的纯文本提取函数,用原生JS就能实现,不用依赖额外库,安全又高效:
function stripHtmlTags(htmlContent) { const tempElement = document.createElement('div'); tempElement.innerHTML = htmlContent; // 兼容不同浏览器的文本获取方式 return tempElement.textContent || tempElement.innerText || ''; }
这个函数的原理是借浏览器的DOM解析能力,把带HTML的内容塞进临时div,再提取纯文本,能处理绝大多数标签场景,包括嵌套标签。
二、找到可以添加脚本的位置/对应JS文件
针对Work Execution(大概率是Maximo模块),找脚本位置可以这么做:
- 打开Work Execution应用,按F12调出浏览器开发者工具,切到Sources标签页
- 在搜索框里搜和长描述相关的关键词,比如
longdescription,或者先去Elements标签页找到字段的DOM元素,看它的id/name属性,再用这个属性值去Sources里搜关联的JS文件 - 注入脚本的两种常用方式:
- 正式环境:用Maximo的Application Designer,找到对应应用,添加自定义JS资源,然后在应用启动事件里调用剥离函数
- 快速测试/临时生效:用浏览器的用户脚本工具(比如Tampermonkey),针对Work Execution的页面自动加载你的脚本,或者直接在浏览器控制台先测试效果
三、给字段绑定处理逻辑
找到长描述字段的DOM元素后,要在合适的时机触发标签剥离:
- 示例代码(假设字段ID是
longdescription):
// 页面加载完成后执行 document.addEventListener('DOMContentLoaded', function() { const descInput = document.getElementById('longdescription'); if (descInput) { // 先清理现有内容里的HTML标签 descInput.value = stripHtmlTags(descInput.value); // 监听输入事件,防止用户编辑时再次混入HTML descInput.addEventListener('input', function() { this.value = stripHtmlTags(this.value); }); } });
- 如果是富文本编辑器(比如CKEditor),那得找到编辑器实例,用编辑器的API获取纯文本,比如:
// 假设编辑器实例是CKEditor.instances.longdescription const editor = CKEditor.instances.longdescription; if (editor) { const plainText = stripHtmlTags(editor.getData()); editor.setData(plainText); }
四、小提示
- 不确定字段ID?右键点击长描述输入框→选择Inspect,在Elements面板里就能看到它的属性
- 先在浏览器控制台测试
stripHtmlTags函数:把字段里的HTML内容复制进去,看返回的是不是干净的纯文本,确认没问题再集成脚本
内容的提问来源于stack exchange,提问作者Cihan Ukan
相关产品推荐
相关产品推荐

