当前位置: 首页 > news >正文

网页制作图片怎么居中小果seo实战培训课程

网页制作图片怎么居中,小果seo实战培训课程,专门做善事的网站,免费金融网站模板写在前面 在前端开发过程中,会遇到一些需要使用iframe的场景,使用iframe关键的一个点是数据之间的传输,基于同源的要求十分苛刻,大家基本上是都是跨域的,如果跨域进行数据传输呢? 大家使用的比较多的就是p…

写在前面

在前端开发过程中,会遇到一些需要使用iframe的场景,使用iframe关键的一个点是数据之间的传输,基于同源的要求十分苛刻,大家基本上是都是跨域的,如果跨域进行数据传输呢?
大家使用的比较多的就是postMessage()这个方法了,下面将具体展示如何在html中使用iframe进行数据传输,以及在angular框架中如何使用以及在angular中与html中的差异性

普通html页面

由外到内(向iframe内网页传输数据)

使用iframe处

<body><iframe src="./iframe-content.html" class="iframe" frameborder="0"></iframe><script>const iframeElement = document.querySelector(".iframe");//需要等待iframe加载完成后再发送信息,原因是 iframe的网页需要注册message事件,若先发消息再注册,那么在注册之前是收不到消息的iframeElement.addEventListener("load", () => {//相当于iframe自己给自己发消息iframeElement.contentWindow.postMessage("这是一条信息", "*");});</script></body>

iframe内容

<body><span>这里是iframe内容</span><script>window.addEventListener("message", (event) => {console.log(event.data);});</script>
</body>

由内到外

使用iframe处

  <body><iframe src="./iframe-content.html" class="iframe" frameborder="0"></iframe><script>window.addEventListener("message", (event) => {console.log(event.data);});</script></body>

iframe内容

 <body><span>这里是iframe内容</span><script>//给上层级发消息,若上层级是顶层可以使用window.topwindow.parent.postMessage("给使用处发消息", "*");</script></body>

在Angular使用

  • 首先是src 在angular中直接使用src链接会被认为是不安全的,需要通过DomSanitizer中的bypassSecurityTrustResourceUrl方法进行一个转化才可使用
constructor(private sanitizer: DomSanitizer
) {this.src = this.sanitizer.bypassSecurityTrustResourceUrl(`${path}`);
}
  • 其次是在获取iframe 可以通过 @ViewChild来获取
@ViewChild('iframe') iframeElement:ElementRef<HTMLIFrameElement>; 来进行获取
  • 通过监听iframe load事件来判断接受事件是否注册不能使用了 ,就需要在iframe内部传来一条信息来通知事件是否注册完成
  iframeElement.addEventListener("load", () => {iframeElement.contentWindow.postMessage("这是一条信息", "*");});
  window.parent.postMessage(true); //通知app事件注册成功//接受iframe来的通知 基于rxjs去写事件的监听fromEvent<MessageEvent>(window, 'message').pipe(map(data => data.data)).pipe(takeUntil(this.ngUnsubscribe$)).subscribe(isLoaded => {if (isLoaded) {this.templatePreviewIframe.nativeElement.contentWindow.postMessage(数据);}});

总结

html

<iframe
#iframe
[src]="src"
frameborder="0"
></iframe>
src:string;
ngUnsubscribe$= new Subject();
@ViewChild('iframe') iframeElement: ElementRef<HTMLIFrameElement>;
constructor(private sanitizer: DomSanitizer
) {this.src = this.sanitizer.bypassSecurityTrustResourceUrl(`${path}`);
}ngOnInit(){fromEvent<MessageEvent>(window, 'message').pipe(map(data => data.data)).pipe(takeUntil(this.ngUnsubscribe$)).subscribe(isLoaded => {if (isLoaded) {this.templatePreviewIframe.nativeElement.contentWindow.postMessage(数据);}});
}ngOnDestroy(){this.ngUnsubscribe$.next();this.ngUnsubscribe$.complete();
}

iframe内容网页

ngOnInit(){fromEvent(window, 'message').subscribe((event: MessageEvent<any>) => {//todo});window.parent.postMessage(true); //通知app事件注册成功
}
http://www.yidumall.com/news/75255.html

相关文章:

  • 怎么做网站的搜索引擎引流推广是什么意思
  • 做医疗网站百度最新版app下载安装
  • 网站开发功能百度精准搜索
  • 贵阳网站开发培训学费搜狗网址大全
  • 怎么做网站的一个横向列表百度一下电脑版首页网址
  • vuejs做视频网站湖南专业关键词优化
  • 企业网站备案后可否更改名称win7优化大师官方免费下载
  • 福州最好的网站建设广州seo排名优化
  • 全国建设工程信息网站查收录网站
  • 了解网站开发 后台流程广告联盟app
  • 建设网站有哪些全网搜索软件
  • 国外看新闻app推荐企业网站seo优化外包
  • 汽车城网站建设方案百度直播推广
  • 宿州建设银行网站网络媒体软文案例
  • 湛江做网站公司优化怎么做
  • 看课学校网站建设旅行网站排名前十名
  • 制作返利网站seo优化网站技术排名百度推广
  • wordpress情侣家园seo快速排名网站优化
  • 衡水做外贸网站建设我赢网提供的高水平网页设计师
  • 老板让做公司网站设计拉新app渠道
  • 网站需备案吗网络销售就是忽悠人
  • 电商平台规则中国十大seo公司
  • 做推广优化的网站有哪些线上营销方式6种
  • 重庆假山制作长沙市seo百度关键词
  • 石家庄网站建设报价无锡百度
  • 惠州网站建设方案托管游戏代理平台一天结一次
  • 做seo网站优化多少钱江苏网站推广公司
  • 网站开发工程师岗位概要天津关键词排名提升
  • 佛山网站建设在哪找进入百度app
  • 在线设计图片logo免费seo技巧分享