Güncelleme v8
Aşağıdaki yanıtlar işe yarar ancak uygulamanızı XSS güvenlik risklerine maruz bırakır! . Kullanmak yerine, kullanılması this.sanitizer.bypassSecurityTrustResourceUrl(url)tavsiye edilirthis.sanitizer.sanitize(SecurityContext.URL, url)
Güncelleme
İçin RC.6 ^ versiyon kullanımı DomSanitizer
Plunker
Ve bunun için iyi bir seçenek saf boru kullanmaktır:
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);
}
}
Yeni eklemeyi unutmayın SafePipeiçin declarationsAppModule dizisi. ( dokümantasyonda görüldüğü gibi )
@NgModule({
declarations : [
...
SafePipe
],
})
html
<iframe width="100%" height="300" [src]="url | safe"></iframe>
Plunker
embedEtiketi kullanırsanız bu sizin için ilginç olabilir:
Eski sürüm RC.5
Bu şekilde yararlanabilirsiniz DomSanitizationService:
export class YourComponent {
url: SafeResourceUrl;
constructor(sanitizer: DomSanitizationService) {
this.url = sanitizer.bypassSecurityTrustResourceUrl('your url');
}
}
Ve sonra urlşablonunuza bağlanın :
<iframe width="100%" height="300" [src]="url"></iframe>
Aşağıdaki içe aktarmaları eklemeyi unutmayın:
import { SafeResourceUrl, DomSanitizationService } from '@angular/platform-browser';
Piston örneği