加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs表达式中的HTML内容,如何不转义,直接表现为html元素

发布时间:2020-12-17 10:15:46 所属栏目:安全 来源:网络整理
导读:默认情况下,AngularJS对会对插值指令求职表达式(模型)中的任何HTML标记都进行转义,例如以下模型: $scope.msg = “hello,bworld/b!” p{{msg}}/p 渲染过程会对b标签进行转义,他们会议纯文本显示而非标记; 插值指令会对模型中任意html内容进行转义,这是

默认情况下,AngularJS对会对插值指令求职表达式(模型)中的任何HTML标记都进行转义,例如以下模型:
$scope.msg = “hello,<b>world</b>!”
<p>{{msg}}</p>
渲染过程会对b标签进行转义,他们会议纯文本显示而非标记;
插值指令会对模型中任意html内容进行转义,这是为了防止html注入攻击。
如果因为某种理由,包含html标记的模型要被浏览器求职和渲染,那么可以用ng-bind-html-unsafe指令来关掉默认的html标签转义:
<p ng-bind-html-unsafe=”msg”></p>;

使用ng-bind-html-unsafe指令需要极度小心,它应被限制在你完全信任并控制的html标签。

angularjs还有一个指令,ng-bind-html,它能够选择性净化制定html标签,同时允许其他标签被浏览器所解释,用法如下:

方法一:
1.导入angular-sanitize.js
2.在你app中报刊需要依赖的模块,如下:

var app = angular.module('myApp',['ngSanitize']);

3.<p ng-bind-html=”msg”></p>;

方法二:
1. 导入angular-sanitize.js
2. 将其作为一个过滤器:

angular.module('myApp')
    .filter('to_trusted',['$sce',function($sce){
        return function(text) {
            return $sce.trustAsHtml(text);
        };
    }]);

3.<p ng-bind-html=”msg | to_trusted”></p>;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读