首页 > 前端技术 > 关于angularJs中的unsafe:
2016
08-12

关于angularJs中的unsafe:

页面发短信和打电话都简单的使用了tel:和sms:的链接值,这样的:

 

1
2
3
<a href=”tel:12312312123″>打电话</a>
<a href=”sms:12312312123″>发短信</a>

 

手机上的浏览器看到这样的链接,就会自动调出短信和拨号的界面啦,其实很早之前的mailto:,也是类似这样的东西。

但是即便如此,我发现还是不行,为啥呢,经过旷日持久的debug后,发现生产的代码发现居然是<a href="unsafe:sms:12312312123">xxx</a>,为啥,unsafe是什么鬼?

angularJS新手表示压力很大,请教google大神后,有善良的叔叔拯救了我,原来angular对href是有安全检查的,只能生成它认为安全的链接。AngularJS真是为我们的安全操碎了心……而我也更加明白了{{}}并不是一个简单的模板替换,它真的把我们的html重新编译了一遍!

解决方法如下~

 

1
2
3
4
5
6
7
8
9
angular.module(‘app’).config( [
    '$compileProvider',
    function( $compileProvider )
    {
        $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|file|sms):/);
        // Angular v1.2 之前使用 $compileProvider.urlSanitizationWhitelist(...)
    }
]);
最后编辑:
作者:管理员
这个作者貌似有点懒,什么都没有留下。