我需要關於角2中的iframe的幫助。從數據庫中向角2注入Iframe
首先將iframe直接嵌入到組件模板中可以正常工作。
<iframe
src='http://plnkr.co/edit/zZ0BgJHvQl5CfrZZ5kzg?p=preview | safeUrl'
allowtransparency='true'
frameborder='0'
scrolling='no'
width='80%'
height='500'>
</iframe>
這裏是低於
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizationService } from "@angular/platform-browser";
@Pipe({
name: 'safeUrl'
})
export class SafeUrlPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizationService) {
}
transform(url) {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
}
爲safeUrl管代碼這一切工作正常。
問題是,當我想從數據庫中角加載這個iframe中拋出一個錯誤,將無法呈現的iframe
ERROR: browser_adapter.js:90WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss).
此iframe正在從的NoSQL數據庫中讀取並返回到角2嵌套在HTML腳本中。
下面是一個例子下面的東西正在從數據庫中獲取:
"<h2>Some text returned from the DB</h2>
<iframe
src='http://plnkr.co/edit/zZ0BgJHvQl5CfrZZ5kzg?p=preview | safeUrl'
allowtransparency='true'
frameborder='0'
scrolling='no'
width='80%'
height='500'>
</iframe>
<p>Some more text returned from the DB</p>"
我如何能得到這個從數據庫中返回時,在角2呈現什麼建議?謝謝。
更新
所以這是怎麼了加入的iframe嵌套的HTML代碼塊內從數據庫到{{(後$ |異步)?說明}},如下圖所示。
<h2>{{ (post$ | async)?.title }}</h2>
<div innerHTML="{{ (post$ | async)?.description }}" ></div>
謝謝!
這正是導致錯誤的代碼嗎? AFAIK該錯誤僅由通過綁定添加值引起的,但用'
是的,這是這是確切的代碼,當我直接將其嵌入到模板,它工作正常,但是當我我從數據庫中讀取它,我讓你究竟從數據庫中讀取什麼錯誤 – Dave
?這是不可能的'src ='http://plnkr.co/edit/zZ0BgJHvQl5CfrZZ5kzg?p = preview |由於上述評論中提到的原因,safeUrl''完成了您的期望。我想你得到的錯誤信息不是來自URL,而是你從數據庫中讀取並加入DOM的整個HTML塊。你如何添加它? –