【发布时间】:2017-03-10 08:15:05
【问题描述】:
我正在使用角度 1.6。 我正在从我的 nodejs 服务器动态提取 html 并将其写入页面上的 div 中。
<p ng-bind-html="htmlSource"></p>
$scope.htmlSource = '<link rel="stylesheet" type="text/css" href="http://NOT-MY-SERVER/style.css"><div class='specialcss'></div>';
我能够很好地显示呈现的 html。但我没有正确的格式。
我需要做的事情
- 获取 css,它不是来自我的服务器。 (应该不会遇到 css 的跨站脚本问题吧?)
- 仅将其应用于 html sn-p(而不是覆盖我网站的默认 css)
- 阻止 html 中的任何附带的 javascript 运行
这可能吗?
【问题讨论】:
-
我刚刚尝试过,没有任何问题...查看jsFiddle
-
你在使用
$sce(严格上下文转义)服务吗? -
@The.Bear 似乎 $sce.trustAsHtml() 是关键,因为我看到正在下载的 .css 文件。有没有办法将样式包含在这个 html 中,这样它就不会影响我页面的其余部分?
-
另外,添加了第三个要求。我可以阻止/不信任 html 中的 javascript 吗?
-
关于仅将样式应用于一个部分... css 应用于整个文档,我没有看到任何简单的解决方案(至少据我所知)。如果您可以操作服务器 css 文件,我认为如果您对所有 css 规则使用唯一的 #id 并将该唯一 #id 放入具有
ng-bind-html的 div 中,这是一种更好的方法
标签: javascript html css angularjs node.js