UI 不显示列的标签(数据类型:文本)
Posted
技术标签:
【中文标题】UI 不显示列的标签(数据类型:文本)【英文标题】:UI does not display tags of a column (data type: text) 【发布时间】:2021-12-05 09:43:04 【问题描述】:想知道为什么我的字符串列 (message_template
) 不允许包含在标签 <>
中的任何单词出现在界面中。数据类型只是文本。
SQL:
UI:(请忽略随机字母,这是一张测试表)
JS 代码:
$.each(response.all_messages, function (key, message)
tbody+='<tr>'+
'<td><p class="font-weight-bold mb-0">'+message.message_name+'</p>'+message.message_description+'</td>'+
// '<td>'+gettemplatetype(message.template_type)+'</td>'+
'<td>'+message.message_type+'</td>'+
'<td>'+message.message_template+'</td>'+
'<td>'+getreplytype(message.reply, message.reply_type, message.reply_description)+'</td>'+
'<td>'+getmessagestatus(message.effective_start_datetime, message.effective_end_datetime)+'</td>'+
'<td>'+
'<button type="button" value="'+message.id+'" class="edit_message btn btn-outline-secondary"><i class="fas fa-edit"></i> Edit</button> '+
'<button type="button" value="'+message.message_id+'" class="delete_message btn btn-outline-secondary"><i class="fas fa-trash"></i> Delete</button>'+
'</td>'+
'</tr>';
);
message_template
列的具体行是:
'<td>'+message.message_template+'</td>'+
【问题讨论】:
因为<
和>
表示一个html 标签,浏览器正试图为您呈现该标签,因为您正在使用字符串连接来构建一个html 字符串。我希望用户没有输入任何数据库文本...输入名称:<script>location.href="***.com"</script>
。用户:为什么列表在堆栈溢出时一直打开?
试试 '<td>'+escape(message.messasge_type)+'</td>'
... 虽然 MDN escape 建议不应该使用它 - 不清楚替代方案。
【参考方案1】:
简单地使用这个(替换正则表达式方法)并将您的行替换为以下行:
'<td>'+ message.message_template.replace(/(<([^>]+)>)/ig,"") +'</td>'+
【讨论】:
感谢您的建议,但不知何故标签没有显示 你也想在前端显示标签吗? 是的,基本上我只需要将标签转换成字符串 你能举一个你的显示例子吗,我的意思是你想如何将<>
标签转换为字符串?
只是为了不让它们读取为 html 标签而是字符串以上是关于UI 不显示列的标签(数据类型:文本)的主要内容,如果未能解决你的问题,请参考以下文章