define([ "app",], function (app) {
app().registerFilter("trusted", ["$sce", function ($sce) {return function (html) {if (typeof html== 'string') //判断类型为字符串
return $sce.trustAsHtml(html)
return html
}
}])
})
sce 即 strict contextual escaping,严格模式下的上下文隔离,也可以理解为安全绑定,类似于浏览器的同源加载策略,不能加载不同域下的文件及不鞥呢使用不和要求的协议,angularJS为了避免安全漏洞,有些ng-src或ng-include都会进行安全检查,避免了一些跨站的XSS。angularJS是默认开启sce的,所以html文本得使用授权信任加载的html文本。
$sce是angularJS自带的安全处理模块,$sce.trustAsHtml()方法将值转换为特权所接受并能安全地使用“ng-bind-html”,就实现在数据加载时对于html标签的自动转义。
类似于下面这样吗?new Function()这么方便的函数干嘛不用。<script>
function runCode(obj)
{run=new Function(obj.value)
ph.innerText=run()}
</script>
<body>
<textarea>sum=2*3return sum</textarea>
<button onclick="runCode(this.offsetParent.getElementsByTagName('textarea')[0])">运行代码</button>
<div id="ph" style="height:3emmargin:1em 10 10 0border:solid 1 gray">
</div>
</body>
亲,直接打开浏览器查看不就可以了,或者使用DreamWeaver的视图功能,不过很多时候可能不准确,在不同的浏览器下一边编辑html+css+js一边用不同的浏览器打开进行浏览,这是最准确的