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

在线crm免费奉节县关键词seo排名优化

在线crm免费,奉节县关键词seo排名优化,手机输入网址怎么输入,2014做网站写在前面 在前端开发过程中,会遇到一些需要使用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/98782.html

相关文章:

  • 如何做一张图片的网站池州网站seo
  • 一般网站的费用技术优化seo
  • 专业做seo的网站海外建站
  • 苏州网站建设开发百度推广售后服务电话
  • 西安市网站建设公司热搜榜百度
  • 商丘做网站汉狮网络国家重大新闻
  • 网页框架结构有哪些seo排名外包
  • 网页网站设计培训班百度助手下载
  • 大型科技网站建设漯河seo公司
  • wordpress伪静态后二级目录错误福州短视频seo服务
  • 社会建设网站手机制作网站app
  • 的建站公司seo快速排名代理
  • 临沂招聘网最新招聘西安关键词优化服务
  • 婚庆公司网站建设doc网站黄页推广软件
  • 网站制作设及的技术网址大全导航
  • wordpress 幻灯数据库优化是什么意思?
  • 求一个做美食视频的网站竞价推广思路
  • 丽水做企业网站的公司管理方面的培训课程
  • 网站建设销售实习四平网络推广
  • 做网站的图片分类百度代理公司怎么样
  • 重庆招生院校网站百度收录是什么意思
  • 网站的购物车怎么做电脑培训机构
  • 淘宝网网站建设的需求分析seo搜索引擎优化原理
  • 做网站建设的目的海外广告联盟平台推广
  • 做 了一个 家教 网站百度大数据搜索引擎
  • 手机网站空间申请seo薪酬
  • 衢州网站网站建设做网站建网站公司
  • 建设银行卡网站网络营销推广方案步骤
  • 潍坊制作网站公司网站备案
  • 上海专业网站制作开发郑州网站seo