关于angularJs中的unsafe:

By | 2015/08/25

最近在做一个Cordova的项目,之前有没有说过…… 无所谓了,我在里面的发短信和打电话都简单的使用了tel:和sms:的链接值,有没有人不知道?就是这样的:

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

不过在cordova中,光这样写是不行的,你还要在config.xml中增加如下的声明才行:

据说来自IBM对Cordova的贡献,有够会来事儿啊:)

但是即便如此,我发现还是不行,为啥呢,经过旷日持久的debug后,发现生产的代码发现居然是<a href="unsafe:sms:12312312123">xxx</a>,为啥,unsafe是什么鬼?
30_3999_3f233fc945f475a
angularJS新手表示压力很大,请教google大神后,有善良的叔叔拯救了我,原来angular对href是有安全检查的,只能生成它认为安全的链接。AngularJS真是为我们的安全操碎了心……而我也更加明白了{{}}并不是一个简单的模板替换,它真的把我们的html重新编译了一遍!

解决方法如下~


有7人评论 关于angularJs中的unsafe:

  1. ccc

    哎哟我去 感谢大婶呀!刚好项目也遇到这个问题,顺便说下 如果 a标签的href 里头 填写 javascript: void(0),辣么在白名单上添加这个就行了, 填写javascript:; 是无效的

    回复
  2. 盛照鑫

    javascript: void(0) 是怎么写的? |ftp|mailto|tel|file|sms|javascript不行吗

    回复
    1. xishui 作者

      没试过,应该直接在ng-click中return false?

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注