Napotkałem problem z niebezpiecznym adresem URL po użyciu $ compileProvider.aHrefSanitizationWhitelist (/^\ s * (whatsapp): /); kiedy czytam kątowe dokumenty, jest napisane:
aHrefSanitizationWhitelist ([regexp]); Pobiera lub zastępuje domyślne wyrażenie regularne używane do umieszczania na białej liście bezpiecznych adresów URL podczas czyszczenia [href]. Sanitization to środek bezpieczeństwa mający na celu zapobieganie atakom XSS za pośrednictwem html links. Dowolny adres URL przypisany do [href] przez powiązanie danych jest najpierw normalizowany i zamieniany w bezwzględny URL. Następnie adres URL jest porównywany z wyrażeniem regularnym aHrefSanitizationWhitelist. Jeśli zostanie znaleziony odpowiednik, oryginalny adres URL zostanie zapisany w domenie. W przeciwnym razie bezwzględny adres URL jest poprzedzony ciągiem "unsafe:", a dopiero potem jest zapisywany w DOM. "Jeśli zostanie znaleziony odpowiednik, oryginalny adres URL zostanie zapisany w domenie. W przeciwnym razie bezwzględny adres URL zostanie poprzedzony ciągiem" unsafe: "i tylko wtedy zostanie zapisany w DOM." Więc dla wszystkich innych adresów URL innych niż WhatsApp, mecz nie zostanie znalezione i zostanie oznaczony jako niebezpieczny
The inny jest sposób, aby dyrektywę
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;
});
}
}
});
<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>
@ user3362364 czy mógłbyś spojrzeć na moją odpowiedź? –
Przepraszam za to. Testowałem i to nie działało. Spodziewał się, że więcej osób wypowie się i upłynie czas. Dodałem twój kod do app.js i zakończyłem go średnikiem, ale nie działało z następującym błędem (jestem nowicjuszem): ReferenceError: $ compileProvider nie jest zdefiniowany. PS: Mój koleś JS facet jest na urlopie przez kolejne ~ 10 dni – user3362364
Należy pamiętać, że działa idealnie, jeśli bezpośrednio dodaję link, taki jak http://domena.com/ zamiast {{FullURL}} – user3362364