angular - Angular iframe 无法使用 DomSanitizer 快速加载 url
问题描述
我的应用程序中有一个 iframe。由于 iframe url 来自另一个域,因此我使用 DomSanitizer。一切正常,但是当我运行我的应用程序时,我在 iframe 中看到“找不到网页”(见图)。为了缩小问题范围,如果我删除 DomSanitizer,问题就会消失。使用 DomSanitizer 时如何解决此问题?我尝试过使用管道,但问题仍然存在。
getUrl() {
return this.sanitizer.bypassSecurityTrustResourceUrl( this.url );
}
HTML
<iframe [src]="getUrl()" style="width: inherit"
[height]="frameHeight"
frameborder="0" allowfullscreen="allowfullscreen">
</iframe>
解决方案
我通过在 url 输入属性中有一个设置器并在其中设置 this.sanitizer.bypassSecurityTrustResourceUrl 解决了这个问题,如下所示
_url: string;
get url(): string {
return this._url;
}
@Input() set url( value: string ) {
this._url = value;
if( this._url ) {
this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl( this._url );
}
}
然后我在 HTML 中使用 urlSafe
推荐阅读
- windows - Windows GNU Make 在某些情况下会破坏 POSIX 颜色代码,但为什么呢?
- jquery - 如何使用角度而不是jquery打开悬停下拉菜单?
- javascript - PHP - 关闭子窗口,刷新父窗口,转到锚点
- reactjs - ES6:.reduce 函数
- .net - How do I reference a field's content in Ext?
- javascript - 如何在角度6中转置表格
- oracle - 如何在登录我的数据库时生成自定义消息(横幅)
- javascript - Javascript scrollIntoView() 方法第一次在 react 中不起作用
- python - (如何)我可以将 seaborn despine 函数应用于单个子图吗?
- xamarin.forms - 应用中心事件需要数小时才能与崩溃相关联