【发布时间】:2016-05-26 15:00:43
【问题描述】:
我通过 AngularJS 的 $http 从后端获取 HTML 代码,并将检索到的代码记录下来,没有问题,但是在浏览器中看到它,html 结构发生了变化。 这是我得到的代码:
<a href=" http://www.google.com" target="_blank">
<figure>
<img class="img-responsive" src="/sites/Satellite;jsessionid=pk_tbxorbyJ4KrsWxo1jaVBFYvQPx1VovEs2GpjWziIk6cFaL50_!650994948?blobcol=urldata&blobkey=id&blobtable=MungoBlobs&blobwhere=1462843196206&ssbinary=true" />
</figure>
<p> Some text</p>
</a>
这就是浏览器显示的内容:
<a href=" http://www.google.com" target="_blank">
</a>
<figure>
<img class="img-responsive" src="/sites/Satellite;jsessionid=pk_tbxorbyJ4KrsWxo1jaVBFYvQPx1VovEs2GpjWziIk6cFaL50_!650994948?blobcol=urldata&blobkey=id&blobtable=MungoBlobs&blobwhere=1462843196206&ssbinary=true">
</figure>
<p> some text</p>
然后我做了以下测试,记录检索到的代码
$log.debug(vm.myHtml);
然后用
清理代码$log.debug($sce.getTrustedHtml(vm.myHtml))
我得到了相同的先前差异。
【问题讨论】:
-
你的根 HTML 顶部有
<!doctype html>吗? -
你的浏览器是什么? demo 适用于我的浏览器(Google Chrome 版本 50.0.2661.102 m)
-
@AlonEitan 是的,我有
-
@YinGang 我在 Google Chrome 版本 49.0.2623.112 (64-bit) for Mac 中测试
-
你解决了吗?我似乎在锚标记中嵌套块元素时遇到了同样的问题。我玩过其他一些人的 ng-bind-html 演示,它们似乎允许嵌套块元素就好了。不太清楚为什么它不允许这种嵌套。我在 chrome 和 firefox 上都试过了,都遇到了同样的问题。
标签: html angularjs sanitize ng-bind-html