应该很简单,但由于此代码无法检测AngularJS代码,因此无法正常工作。
<a href="whatsapp://send?text={{challenge.challenge_title}}"
data-action="{{FullURL}}">Whatsapp</a>
我需要一个指令吗?如果是,那是什么? 有AngularJS经验的人,请帮助。
答案 0 :(得分:9)
您需要在href
角度的config
阶段内清理锚whatsapp
,这样才能使您的href带有app.config(function($compileProvider){
//other configuration code here
$compileProvider.aHrefSanitizationWhitelist(/^\s*(whatsapp):/);
})
前缀。
<强>代码强>
using System.Linq;
查看此SO Question了解详情。
答案 1 :(得分:0)
在使用$ compileProvider.aHrefSanitizationWhitelist(/ ^ \ s *(whatsapp):/)后,我遇到了一个不安全的URL问题;当我阅读角度文档时,它说:
aHrefSanitizationWhitelist([正则表达式]); 检索或覆盖在[href]清理期间用于将安全URL列入白名单的默认正则表达式。 清理是一项旨在通过HTML链接防止XSS攻击的安全措施。 通过数据绑定将要分配给[href]的任何URL首先被标准化并变为绝对URL。然后,将url与aHrefSanitizationWhitelist正则表达式进行匹配。如果找到匹配项,则将原始URL写入dom。否则,绝对网址会以“不安全”为前缀:&#39;字符串然后才写入DOM。 &#34;如果找到匹配,则将原始URL写入dom。否则,绝对网址会以“不安全”为前缀:&#39;字符串,然后才写入DOM。&#34; 因此,除了whatsapp之外的所有其他网址,将无法找到匹配项 它将被标记为不安全
另一种方法是制定指令
angular.module('shareLink')
.directive('whatsApp', function (){
return{
link: function (scope, elem, $attr){
elem.on('click', function (){
var text = $attr.text;
var url = $attr.whatsApp;
var message = encodeURIComponent(text) + " - " + encodeURIComponent(url);
var whatsapp_url = "whatsapp://send?text=" + message;
window.location.href = whatsapp_url;
});
}
}
});
&#13;
<a class="sharelink whatsapp" data-action="share/whatsapp/share" data-text="you can add title or any text here" whats-app="{{url}}">
<i class="fa fa-whatsapp "></i> WHATSAPP
</a>
&#13;
答案 2 :(得分:0)
<a href="https://api.whatsapp.com/send?text={{Your desired Text}}" data-action="share/whatsapp/share" class="share-btn whatsapp" >Share on Whatsapp</a>
这是最简单的过程...
干杯。?