㈠ js識別字元串中的鏈接並使之可跳轉
最近項目遇到一個功能,對話框中的內容可能會包含鏈接,需要識別並可直接點擊,對方的對話框內容是後台返回的數據。
第一次腦中的想法是找到內容中的鏈接摘出來...,有點想偏了,因為看到返回的內容中的鏈接是有<a>標簽,所以只需要利用框架中可以直接識別html標簽的服務或指令就可以。vue項目中直接使用v-html就可以解析
在angular項目中沒有類似v-html的指令,需要藉助$sce服務的trustAsHtml(),
sce服務:因為如果在angularjs中綁定的數據有html標簽時,如上面的<h1>,會被angularjs認為是不安全的而自動過濾掉,為了保留這些標簽就需要開啟非安全模式,這是非常危險的。sce是angularJS自帶的安全處理模塊,因此需要$sce.trustAsHtml()方法將數據內容以html的形式解析並返回。
ng-bind-html指令是通過一個安全的方式將內容綁定到HTML元素上,該屬性依賴於$sanitize,需要在項目中引入angular-sanitize.js文件,並在mole定義時注入該服務ngSanitize。
如果後台返回的數據的鏈接不是a標簽,只是普通的 www.cnblogs.com 這種的字元串,我們的處理方式,需要利用正則先對它處理,給他加上a標簽。
end!