อัพเดท v8
คำตอบด้านล่างใช้งานได้ แต่ทำให้แอปพลิเคชันของคุณเสี่ยงต่อความปลอดภัยของ XSS! . แทนที่จะthis.sanitizer.bypassSecurityTrustResourceUrl(url)
แนะนำให้ใช้this.sanitizer.sanitize(SecurityContext.URL, url)
ปรับปรุง
สำหรับRC.6 ^เวอร์ชั่นให้ใช้DomSanitizer
Plunker
และตัวเลือกที่ดีคือการใช้ท่อบริสุทธิ์สำหรับสิ่งนั้น:
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);
}
}
อย่าลืมเพิ่มรายการใหม่SafePipe
ลงในdeclarations
อาร์เรย์ของ AppModule ( เท่าที่เห็นในเอกสาร )
@NgModule({
declarations : [
...
SafePipe
],
})
HTML
<iframe width="100%" height="300" [src]="url | safe"></iframe>
Plunker
ถ้าคุณใช้embed
แท็กนี้อาจจะน่าสนใจสำหรับคุณ:
RC.5 เวอร์ชันเก่า
คุณสามารถใช้ประโยชน์DomSanitizationService
เช่นนี้:
export class YourComponent {
url: SafeResourceUrl;
constructor(sanitizer: DomSanitizationService) {
this.url = sanitizer.bypassSecurityTrustResourceUrl('your url');
}
}
แล้วผูกเข้ากับurl
เทมเพลตของคุณ:
<iframe width="100%" height="300" [src]="url"></iframe>
อย่าลืมเพิ่มการนำเข้าต่อไปนี้:
import { SafeResourceUrl, DomSanitizationService } from '@angular/platform-browser';
ตัวอย่างพลั่ว