Actualización v8
¡Las respuestas a continuación funcionan pero exponen su aplicación a riesgos de seguridad XSS! . En lugar de usar this.sanitizer.bypassSecurityTrustResourceUrl(url)
, se recomienda usarthis.sanitizer.sanitize(SecurityContext.URL, url)
Actualizar
Para la versión RC.6 ^ use DomSanitizer
Saqueador
Y una buena opción es usar tubería pura para eso:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer} from '@angular/platform-browser';
@Pipe({ name: 'safe' })
export class SafePipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {}
transform(url) {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
}
recuerde agregar su nuevo SafePipe
a la declarations
matriz de AppModule. ( como se ve en la documentación )
@NgModule({
declarations : [
...
SafePipe
],
})
html
<iframe width="100%" height="300" [src]="url | safe"></iframe>
Saqueador
Si usa la embed
etiqueta, esto podría ser interesante para usted:
Versión anterior RC.5
Puede aprovechar DomSanitizationService
así:
export class YourComponent {
url: SafeResourceUrl;
constructor(sanitizer: DomSanitizationService) {
this.url = sanitizer.bypassSecurityTrustResourceUrl('your url');
}
}
Y luego únete a url
tu plantilla:
<iframe width="100%" height="300" [src]="url"></iframe>
No olvide agregar las siguientes importaciones:
import { SafeResourceUrl, DomSanitizationService } from '@angular/platform-browser';
Muestra de saqueador