angular - iframe 未在 angular4 应用程序中加载 src

标签 angular iframe src

在我的应用程序中,我将 youtube 视频加载到 iframe 中。 我已经清理了网址。但是当我运行应用程序时,src 属性没有加载。

下面是html:

<a [href]="data.url" target="_blank" *ngIf="data.contentTypeString=='YOUTUBE_VIDEO' && data.url != null">
            <div class="embed-responsive embed-responsive-16by9">
                <iframe *ngIf="data.contentTypeString=='YOUTUBE_VIDEO'" 
                        class="embed-responsive-item" 
                        src="{{data.url}}"></iframe>
            </div>
        </a>

下面是我运行时的截图: enter image description here

src 只是不会加载 我试过 [src]=data.url。

下面是我用来清理 url 的方法:

public manageYoutubeUrl(url: any) {
        console.log("url====" + url);
        var youtubeUrl = this.sanitize.bypassSecurityTrustUrl(url.replace('watch?v=', 'embed/').replace('http://', 'https://')+"?wmode=opaque&rel=0&autohide=1&showinfo=0&wmode=transparent");
        console.log("youtubeUrl=====" + youtubeUrl);
        return youtubeUrl;
    }

当我检查 youtubeURL 的日志时,它是这样的:

youtubeUrl=====SafeValue must use [property]=binding: https://www.youtube.com/embed/l-103taCWOQ?wmode=opaque&rel=0&autohide=1&showinfo=0&wmode=transparent (see http://g.co/ng/security#xss)

ERROR Error: Required a safe ResourceURL, got a URL (see http://g.co/ng/security#xss) at DomSanitizerImpl.checkNotSafeValue (

请指导。 谢谢。

最佳答案

你需要做这样的事情

TS

 import { DomSanitizer } from '@angular/platform-browser';

 this.current_url=this.sanitizer.bypassSecurityTrustResourceUrl(url)

模板

<iframe id="frame" frameborder="0" [src]="current_url"></iframe>

评论后更新

只需做一些像 [src]="current_url"[attr.src] = ""

关于angular - iframe 未在 angular4 应用程序中加载 src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320387/

相关文章:

javascript - 如何跟踪推特按钮点击?

html - 如何在 HTML 中正确引用本地资源?

javascript - JS运行后图片加载到DOM中

javascript - 如何在 ngx-openlayers 中加载自定义 .pbf 文件

node.js - angular-cli:为什么当 npm 安装新模块时,旧模块会被删除

javascript - Greasemonkey iframe 内容访问 jQuery

javascript - Jquery哪个事件比这个更好?

javascript - 为什么在 JavaScript 的相对路径中使用正斜杠 '/' 而不是反斜杠 '\'?

angular - 我如何为 Router Guard Jasmine 测试模拟 RouterStateSnapshot

Typescript 1.8 Angular2 rc1 并注入(inject) JavaScript 库 (auth0.js);找不到模块 'auth0'