首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angularjs:预览清理后的html

Angularjs:预览清理后的html
EN

Stack Overflow用户
提问于 2013-12-14 01:54:52
回答 1查看 2.3K关注 0票数 1

请找到plnkr

我想要显示一些html预览。html已经在服务器上进行了清理(例如:"<b>HELLO</b>")。如何显示html表单。在本例中,我希望显示myHtmlmyHtml2 (第一次预览)。

html

代码语言:javascript
复制
 <div ng-controller="myController">
      <div ng-bind-html="myHtml"></div>
      <div ng-bind-html="myHtml2"></div>
      <div >{{myHtml2}}</div>
    </div>

js

代码语言:javascript
复制
myApp.controller('myController', ['$scope', '$sce', function myController($scope, $sce){
  $scope.myHtml = "<b>HELLO</b>";
  $scope.myHtml2 = "&lt;b&gt;HELLO&lt;/b&gt;";      
}]);

输出

代码语言:javascript
复制
HELLO
<b>HELLO</b>
&lt;b&gt;HELLO&lt;/b&gt;
EN

回答 1

Stack Overflow用户

发布于 2013-12-14 01:58:34

您只需要在客户端上使用$sce.trustAsHtmlunsanitize HTML:http://plnkr.co/edit/h2loxWsPJOELhNvkfHmK?p=preview

代码语言:javascript
复制
// From: https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript
function htmlDecode(input){
  var e = document.createElement('div');
  e.innerHTML = input;
  return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}

myApp.controller('myController', ['$scope', '$sce', function myController($scope, $sce){
  $scope.myHtml = "<b>HELLO</b>";
  $scope.myHtml2 = $sce.trustAsHtml(htmlDecode("&lt;b&gt;HELLO&lt;/b&gt;"));

}]);

来自:Unescape HTML entities in Javascript?htmlDecode

但是,我不建议采用这种方法。这感觉非常黑客,我怀疑可能会导致您的网站上的漏洞。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20572947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档