解決方法: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
最后祝你,身體健康
我是個蠢人,不能像數學冠軍那樣立刻分析出來最優的解法、、
但是我想我能代表的人也絕對不在少數
有時并不是你想要解決并付出努力,就能夠得到好的結果
人生路上,什么時候該知難而退,什么時候該奮力一肛
只怕是窮盡一生也無法得到答案