首页 新闻 会员 周边

div设置的 contenteditable = “true”,然后输入html特殊字符,例如&lt 如何在渲染页面上的显示&lt

0
悬赏园豆:20 [已解决问题] 解决于 2017-03-02 09:35
复制代码
<div ng-class="{ 'chat-dialog-news-mine':{{item.isOwn}},'chat-dialog-news-other':{{!item.isOwn}},'chat-dialog-news-file':{{item.content_type == 6}},'chat-dialog-news-mine-file':{{item.isOwn}}&&{{item.content_type == 6}},'chat-dialog-news-other-file':{{!item.isOwn}}&&{{item.content_type == 6}}}" msgId="{{item.imdn_id}}">
                <div contextmenu="supermenu" ng-right-click="decrementRight($event,item)">
                    <i class="icon warn-icon" ng-if="item.isWarn" ng-click="reSendFile(item)"></i>
                    <i ng-class="{true: 'icon {{item.status}}', false: ''}[{{item.isOwn && item.status !== ''}}]"></i>
                    <i ng-class="{true: 'bubble-icon right-icon', false: 'bubble-icon left-icon'}[{{item.isOwn}}]"></i>
                    <span compile='item.content|trustHtml' ng-click="newsClick($event, item)" ng-dblclick="newsDBClick($event, item)" ></span>
                </div>
复制代码
下面这段代码是html转义了,但是也把&lt ,&gt,&amp这些输入转为了<,>,&,如何让页面显示不被转义的页面,请教?现在所在的项目
是客户端,就像某企鹅聊天软件,内容可以插入图面和发送文件,还有 截图功能,主要是文本消息输入,特殊字符被转义了,还有就是文本内容还有
图面,文件都是拼接的div字符串,然后存入indexdb数据库,然后在controller获取数据,然后ng-repeat 数据;渲染到信息窗口,文本内容也被转义了,
不转义,图片还有文件,渲染到信息窗口就是一段html代码


<span compile='item.content|trustHtml' ng-click="newsClick($event, item)" ng-dblclick="newsDBClick($event, item)" ></span>


Lonely,lonelyBurning的主页 Lonely,lonelyBurning | 初学一级 | 园豆:186
提问于:2017-02-24 11:58
< >
分享
最佳答案
0

存到indexdb前自己先编码一下了

收获园豆:20
诶碧司 | 小虾三级 |园豆:1912 | 2017-02-24 14:14

如何编码,需要帮助

Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-02-27 09:58

@Lonely,lonelyBurning:
使用HttpUtility.HtmlEncode编码,编码后,原来是&amp;的部分变成了&amp;amp;

在界面上显示就是&amp;了

诶碧司 | 园豆:1912 (小虾三级) | 2017-02-27 10:13

@诶碧司:试了试还是不可以

Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-03-01 14:00

@Lonely,lonelyBurning:
怎样不行?

var str = System.Web.HttpUtility.HtmlEncode("&amp;");

得到str的值为"&amp;amp;"

下面用html测试,界面上看到的也是&amp;

<html>
<head>
</head>
<body>
<p>&amp;amp;</p>
<p>&amp;</p>
</body>
</html>
诶碧司 | 园豆:1912 (小虾三级) | 2017-03-01 16:06

@诶碧司: 我试了试还是不行的,

//发送二人文本
                    data.to = to_pgm_userid;
                    data.fromId = to_pgm_userid;
                    data.need_read_report = need_read_report;
                    data.content = data.content.replace(/&nbsp;/g, ' ').replace(/&amp;/g, '&');
                    data.content = System.Web.HttpUtility.HtmlEncode("data.content");
Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-03-07 14:44

@Lonely,lonelyBurning:
不要说不行,而要描述想要的结果是怎样的,得到的实际结果又是怎样的,和想要的结果有什么不一样的地方

另外System.Web.HttpUtility.HtmlEncode("data.content");里的"data.content"是什么意思?一个字符串还是想要输入变量来使用?

诶碧司 | 园豆:1912 (小虾三级) | 2017-03-07 15:36

@诶碧司: 我使用的是angularjs框架,现在就是有个需求就是二人聊天和群聊天可以发送特殊字符,比如说我我在输入框内输入,<  >  &  &lt &amp ,在上面的显示就是,&amp 被转义了&,显示在页面上了,&lt转义为 > ,我想要的结果就是当我输入任何内容,渲染的页面也是输入的内容,data.content 为输入的内容;

Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-03-07 16:24

@Lonely,lonelyBurning:
调试一下,看看执行下面代码前后data.content的值

System.Web.HttpUtility.HtmlEncode(data.content)

诶碧司 | 园豆:1912 (小虾三级) | 2017-03-10 11:45
其他回答(3)
0

你得说明是什么语言啊?


Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-24 12:01

angularjs javascript

 

支持(0) 反对(0) Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-03-01 13:58
0

HTML中使用trustHTML过滤器:

<div ng-bind-html='d.4|trustHtml'></div>

而trustHTML过滤器的定义如下:

queueApp.filter("trustHtml",function($sce){
   return function (input){
       return $sce.trustAsHtml(input); 
   } 
});

kingreatwill | 园豆:383 (菜鸟二级) | 2017-02-24 17:59

我试一下可不可以

支持(0) 反对(0) Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-02-27 10:00

还是不可以的

支持(0) 反对(0) Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-03-07 14:21

我现在代码就是这样写的,所以特殊字符也被转义了

支持(0) 反对(0) Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-03-07 16:25
0

& 用 &amp;lt

Supper_litt | 园豆:827 (小虾三级) | 2017-02-25 15:09

我输入的是&amp 输出的也必须是&amp;输入的是&输出也是&

 

支持(0) 反对(0) Lonely,lonelyBurning | 园豆:186 (初学一级) | 2017-02-27 09:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册