angular6 iframe應用

問題一、 iframe如何自適應屏幕高度

解決思路:通過設置iframe外層父元素高度等于window高度,再相對于父元素定位iframe元素;案例如下:

第一步: 模板文件中使用iframe


// demo.component.html
<div style="position: relative; " [style.height]="outHeight"><iframe [src]="srcValue" allowtransparency="true" frameborder="0" id="defaulIframePage" style="position: absolute; width: 100%; height: 100%; "></iframe>
</div>

第二步: ts 中自定義iframe外層父元素的高度


// demo.component.ts
import {fromEvent} from "rxjs/index";export class DemoComponent imple implements OnInit{srcValue = 'http://www.baidu.com';  outHeight = '0px';ngOnInit() {// ifram最外層高度this.outHeight = window.innerHeight + 'px';fromEvent(window, 'resize').subscribe(($event) => {this.outHeight = window.innerHeight + 'px';});}
}

問題二、 安全機制設置

錯誤:

1516266-20190119094819792-758360555.png

解決:

第一步:創建管道


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(value: any, args?: any): any {return this.sanitizer.bypassSecurityTrustResourceUrl(value);}
}

第二步: 在demo.component.html文件中加入管道


<iframe [src]="item.url | safe" allowtransparency="true" frameborder="0" id="defaulIframePage" style="position: absolute; width: 100%; height: 100%; "></iframe>

問題三、src值為同域名不同參數時,iframe不刷新問題

解決思路:使用動態組件 - 將iframe放至動態組件中,父組件將src傳值給動態組件,并且每次傳值時動態渲染組件;

1. 父組件定義


// parent.component.html
<a href= "javascript:;" (click)="loadCmp(srcArray[1])">切換iframe的src值</a>
<div #dynamic></div>// parent.component.ts
export class ParentComponentimplements OnInit, OnDestroy {// 動態切換的src模擬數據srcArray = ["index.html?id='11'", "index.html?id='22'"];// 動態組件@ViewChild('dynamic', { read: ViewContainerRef }) dmRoom: ViewContainerRef;currentCmp: any; // 當前渲染組件constructor(private cfr: ComponentFactoryResolver) {}ngOnInit() {// 動態渲染組件this.loadCmp(this.srcArray[0]);}// 動態渲染組件方法loadCmp(srcValue) {const com = this.cfr.resolveComponentFactory(DynamicComponent);this.dmRoom.clear(); // 清空視圖this.currentCmp = this.dmRoom.createComponent(com);// 傳值this.currentCmp.instance.pathUrl = srcUrl;}     
}

2. 動態組件定義


// dynamic組件;;別忘記將DynamicComponent加入數組entryComponents中;
// dynamic.component.html
<iframe [src]="pathUrl | safe" allowtransparency="true" frameborder="0" id="defaulIframePage" style="position: absolute; width: 100%; height: 100%; "></iframe>// dynamic.component.ts
export class DynamicComponent {pathUrl: string = '';
}

轉載于:https://www.cnblogs.com/zero-zm/p/10290529.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387559.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387559.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387559.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jquery下載地址:https://code.jquery.com/jquery/ 影響范圍: 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷,可能導致LOCA

jquery下載地址&#xff1a;https://code.jquery.com/jquery/ 影響范圍&#xff1a; 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷&#xff0c;可能導致LOCATION.HASH跨站漏洞 已測試成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min…

Myeclipse常用快捷鍵

2019獨角獸企業重金招聘Python工程師標準>>> Ctrl1 快速修復 CtrlD: 刪除當前行 CtrlQ 定位到最后編輯的地方 CtrlL 定位在某行 CtrlO 快速顯示 OutLine CtrlT 快速顯示當前類的繼承結構 CtrlW 關閉當前Editer CtrlK 快速定位到下一個 CtrlE 快速顯示當前Edi…

數字三角形

問題描述 &#xff08;圖&#xff13;.&#xff11;&#xff0d;&#xff11;&#xff09;示出了一個數字三角形。 請編一個程序計算從頂至底的某處的一條路徑&#xff0c;使該路徑所經過的數字的總和最大。●每一步可沿左斜線向下或右斜線向下走&#xff1b;●1&#xff1c;三…

版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷

jquery下載地址&#xff1a;https://code.jquery.com/jquery/ 影響范圍&#xff1a; 版本低于1.7的jQuery過濾用戶輸入數據所使用的正則表達式存在缺陷&#xff0c;可能導致LOCATION.HASH跨站漏洞 已測試成功版本&#xff1a; jquery-1.6.min.js&#xff0c;jquery-1.6.1.min.…

RabbitMQ學習總結(6)——消息的路由分發機制詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一、Routing(路由) (using the Java client)在前面的學習中&#xff0c;構建了一個簡單的日志記錄系統&#xff0c;能夠廣播所有的日志給多個接收者&#xff0c;在該部分學習中&#xff0c;將添加一個新的特點&#xff0…

Kaggle爆文:一個框架解決幾乎所有機器學習問題

上周一個叫 Abhishek Thakur 的數據科學家&#xff0c;在他的 Linkedin 發表了一篇文章 Approaching (Almost) Any Machine Learning Problem&#xff0c;介紹他建立的一個自動的機器學習框架&#xff0c;幾乎可以解決任何機器學習問題&#xff0c;項目很快也會發布出來。 這篇…

C# HttpWebRequest GET HTTP HTTPS 請求

這個需求來自于我最近練手的一個項目&#xff0c;在項目中我需要將一些自己發表的和收藏整理的網文集中到一個地方存放&#xff0c;如果全部采用手工操作工作量大而且繁瑣&#xff0c;因此周公決定利用C#來實現。在很多地方都需要驗證用戶身份才可以進行下一步操作&#xff0c;…

HttpStatusCode

https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?viewnetframework-4.7.2 422 UnprocessableEntity What HTTP status response code should I use if the request is missing a required parameter? Status 422 seems most appropiate based on the…

numpy 和tensorflow 中的乘法

矩陣乘法&#xff1a;tf.matmul() np.dot() &#xff0c; 逐元素乘法&#xff1a;tf.multiply() np.multiply()轉載于:https://www.cnblogs.com/lizhiqing/p/10307760.html

啟用了不安全的HTTP方法

安全風險&#xff1a;可能會在Web 服務器上上載、修改或刪除Web 頁面、腳本和文件。可能原因&#xff1a;Web 服務器或應用程序服務器是以不安全的方式配置的。修訂建議&#xff1a;如果服務器不需要支持WebDAV&#xff0c;請務必禁用它&#xff0c;或禁止不必要的HTTP 方法。方…

Mysql學習總結(4)——MySql基礎知識、存儲引擎與常用數據類型

2019獨角獸企業重金招聘Python工程師標準>>> 1、基礎知識 1.1、數據庫概述 簡單地說&#xff1a;數據庫&#xff08;Database或DB&#xff09;是存儲、管理數據的容器&#xff1b;嚴格地說&#xff1a;數據庫是“按照某種數據結構對數據進行組織、存儲和管理的容器”…

django權限二(多級菜單的設計以及展示)

多級權限菜單設計級標題欄 我們現在只有數據展示,要進入其他url還需要手動的輸入路徑,非常的麻煩,所以我們要設計 一個導航欄以及側邊多級菜單欄,這個展示是通過stark組件的設計的增刪改查頁面,而 每一個 頁面我們都需要有導航欄和側邊的權限菜單欄,所以把這個公共的部分提起到…

6.17 dokcer(一)Compose 簡介

Compose 簡介 Compose 項目是 Docker 官方的開源項目&#xff0c;負責實現對 Docker 容器集群的快速編排。從功能上看&#xff0c;跟 OpenStack 中的 Heat 十分類似。 其代碼目前在 https://github.com/docker/compose 上開源。 Compose 定位是 「定義和運行多個 Docker 容器的…

【系統架構理論】一篇文章精通:Spring Cloud Netflix Eureka

是官方文檔的總結 http://spring.io/projects/spring-cloud-netflix#overview 講解基于2.0.2版本官方文檔 https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.2.RELEASE/single/spring-cloud-netflix.html Netflix提供了以下功能&#xff1a; 服務發現&am…

Flink DataStream 編程入門

流處理是 Flink 的核心&#xff0c;流處理的數據集用 DataStream 表示。數據流從可以從各種各樣的數據源中創建&#xff08;消息隊列、Socket 和 文件等&#xff09;&#xff0c;經過 DataStream 的各種 transform 操作&#xff0c;最終輸出文件或者標準輸出。這個過程跟之前文…

騰訊手游如何提早揭露游戲外掛風險?

目前騰訊SR手游安全測試限期開放免費專家預約&#xff01;點擊鏈接&#xff1a;手游安全測試立即預約&#xff01; 作者&#xff1a;sheldon&#xff0c;騰訊高級安全工程師 商業轉載請聯系騰訊WeTest獲得授權&#xff0c;非商業轉載請注明出處。 文中動圖無法顯示&#xff0c…

基于ARM Cortex-M0+ 的Bootloader 參考

源&#xff1a; 基于ARM Cortex-M0內核的bootloader程序升級原理及代碼解析轉載于:https://www.cnblogs.com/LittleTiger/p/10312784.html

小猿圈web前端之網站性能優化方案

現在前端不僅要能做出一個網站頁面&#xff0c;還要把這個頁面做的炫酷&#xff0c;那需要很大程度的優化&#xff0c;那么怎么優化才更好呢&#xff1f;小猿圈總結了一下自己優化的方案&#xff0c;感興趣的朋友可以看一下。一般網站優化都是優化后臺&#xff0c;如接口的響應…

下面介紹一個開源的OCR引擎Tesseract2。值得慶幸的是雖然是開源的但是它的識別率較高,并不比其他引擎差勁。網上介紹Tessnet2也是當時時間排名第三的識別引擎,只是后來慢慢不維護了,目前是G

下面介紹一個開源的OCR引擎Tesseract2。值得慶幸的是雖然是開源的但是它的識別率較高&#xff0c;并不比其他引擎差勁。網上介紹Tessnet2也是當時時間排名第三的識別引擎&#xff0c;只是后來慢慢不維護了&#xff0c;目前是Google在維護&#xff0c;大家都知道Google 在搞電子…

js 更改json的 key

let t data.map(item > {return{fee: item[費用],companyName1: item.companyName,remark1: item.remark,beginTime1: item.beginTime,endTime1: item.endTime}})console.log(t) 源地址&#xff1a;https://www.cnblogs.com/Marydon20170307/p/8676611.html轉載于:https:/…