Vous devez ajouter explicitement des protocoles d'URL à la liste blanche d'Angular en utilisant une expression régulière. Seuls http
, https
, ftp
et mailto
sont activés par défaut. Angular ajoutera un préfixe unsafe:
à une URL qui n'est pas dans la liste blanche en utilisant un protocole tel que chrome-extension:
.
Un bon endroit pour ajouter le protocole chrome-extension:
à la liste blanche serait dans le bloc de configuration de votre module :
var app = angular.module( 'myApp', [] )
.config( [
'$compileProvider',
function( $compileProvider )
{
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/);
// Avant la version 1.2 d'Angular, on utilisait $compileProvider.urlSanitizationWhitelist(...)
}
]);
La même procédure s'applique également lorsque vous avez besoin d'utiliser des protocoles tels que file:
et tel:
.
Veuillez consulter la documentation de l'API $compileProvider d'AngularJS pour plus d'informations.
1 votes
Gardez à l'esprit que vous devez utiliser
ng-href
dans ce cas plutôt que simplementhref
: docs.angularjs.org/api/ng/directive/ngHref0 votes
Je viens d'utiliser une méthode de contrôleur
function gotoURL(url) { $window.location.href = url; }