解决方法:angular.module加入下面这行:(依据Angular changes urls to “unsafe:” in extension page)
.config(function($compileProvider){//注:有些版本的angularjs为$compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|javascript):/);,两种都试一下可以即可$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|itms\-apps|ftp|mailto|file|javascript):/);
})
代码视觉效果:
值得请注意的是,图中红框内的含义是:
//“排除angular对以itms-apps://开头的appstore链接的安全封锁”
实际上、、、你想排除什么链接就可以在这里添加什么、、、、、
问题解决完毕、、、、
但是下面为什么还有这么长呢?
这是因为,在项目紧急的那段时间,我对于完全陌生的代码是没有解读能力的,只会复制黏贴
我想这大多与我的阅读障碍有关、、、、
但是危急时刻往往能够激发许多奇怪的行为、、、如果你对玄学并不感兴趣,就可以关了
请让我们看看在危急关头我想到了怎样的玄学解法、、、、、、
解决方法:不要使用angular提供的ng-href亲情链接绑定,用directive手工填写href!
1、html内容:先把链接绑定到title上备用(请注意这里的a标签中safe属性,涉及directive相关!)
<a safe title="{{downData[2].link}}" class="button button-positive">下载iPhone版
</a>
代码形状:
2、directive内容:通过点击事件的驱动,将title手工填入href中
.directive("safe", [function () {return {link: function (scope, element, attributes) {element.bind("click", function () {console.log(element[0].title);console.log(element[0].href=element[0].title);});}}
}])
代码视觉效果:
3、完毕!你有可能再也不用担心angular会过滤掉苹果店的链接了!
2333
请看一看我第一次编辑这篇时候的心态、、、、、自以为用高明的办法解决了天大的问题、、、
今天,我遇到了这个:
<a ng-href="itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware" href="unsafe:itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware">test
</a>
看看这个dalao们,我的天这个unsafe到底是个什么啊
当然,只要你愿意搜的话,答案是有的:Angular changes urls to “unsafe:” in extension page
然后,我就照做了
效果如下
看看这些同志们,为什么一般链接白名单了,苹果店的链接还是拓麻unsafe啊
经过一小段玄学的思考,我认为这是改变不了的事实
那到底该怎么办呢????????总不能跟领导这样解释吧?????
后来,我逐渐明白了、、、
angular貌似有着无论如何也无法不屏蔽苹果的链接
......很多描述.....
哦擦,终于出来了、、、
手机测试,正常!
我、、、wtm
最后祝你,身体健康
我是个蠢人,不能像数学冠军那样立刻分析出来最优的解法、、
但是我想我能代表的人也绝对不在少数
有时并不是你想要解决并付出努力,就能够得到好的结果
人生路上,什么时候该知难而退,什么时候该奋力一肛
只怕是穷尽一生也无法得到答案