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>'+

【问题讨论】:

因为&lt;&gt; 表示一个html 标签,浏览器正试图为您呈现该标签,因为您正在使用字符串连接来构建一个html 字符串。我希望用户没有输入任何数据库文本...输入名称:&lt;script&gt;location.href="***.com"&lt;/script&gt;。用户:为什么列表在堆栈溢出时一直打开 试试 '&lt;td&gt;'+escape(message.messasge_type)+'&lt;/td&gt;'... 虽然 MDN escape 建议不应该使用它 - 不清楚替代方案。 【参考方案1】:

简单地使用这个(替换正则表达式方法)并将您的行替换为以下行:

  '<td>'+ message.message_template.replace(/(<([^>]+)>)/ig,"") +'</td>'+
   

【讨论】:

感谢您的建议,但不知何故标签没有显示 你也想在前端显示标签吗? 是的,基本上我只需要将标签转换成字符串 你能举一个你的显示例子吗,我的意思是你想如何将&lt;&gt;标签转换为字符串? 只是为了不让它们读取为 html 标签而是字符串

以上是关于UI 不显示列的标签(数据类型:文本)的主要内容,如果未能解决你的问题,请参考以下文章

多标签计算类权重 - 不可散列的类型

请问C#.net如何更改dataTable的数据类型?

postgres将视图列的数据类型从未知更改为文本

Excel中的数据类型

Toad 问题:Oracle 类型作为显示所有记录的表中列的数据类型

我想用VB的文本框显示access数据库某行某列的一个数据,该怎么做?