遮罩层 + Iframe实现界面自动显示

前言

这周因为科三的考试耽误了两天,提早一天要去熟悉考场,次日要考试,好在次日晚上赶回来了,两天没敲代码就感受别扭,这周写了点日志系统,写了点做业系统,果真技术还不到家,思路上出了点小问题。spring

效果

在教师评阅做业时,先把学生的做业展示出来,而后关掉界面进行评分
(用百度主页作演示)
Peek 2020-04-17 22-36.gifspringboot

Ifream

iframe 用于在网页内显示网页,实现它的方法有多种:ide

<iframe src="URL"></iframe>

URL 指向隔离页面的位置,因为当时对src有误解,因此没有选用这种方法。ui

<iframe src="demo_iframe.htm" name="iframe_a"></iframe>
<p><a href="http://www.w3school.com.cn" target="iframe_a">W3School.com.cn</a></p>

要想让iframe显示a标签里连接的内容,就要使得iframe标签里的name属性与a标签里的target属性相等,这样的话,点击a标签的连接就能在iframe里显示相应的内容了。
因而当时的代码是:this

<iframe height="500px" width="100%" name="iframe_work"></iframe>
<p><a target="iframe_work" style="display: none"
[href]="protocol + '//' + (this.work.student.no + '.' + host + '/' + getWorkDir()) | safeUrl"
#linkToWork>点击查看</a>
</p>
public load() {
    this.workService.getById({id: this.params.workId})
      .subscribe((data) => {
        this.work = data;
        this.goToWork();
      }, () => {
        console.log('error');
      });
  }
goToWork(): void {
this.linkToWork.nativeElement.click();
}

当时出来的效果是这样的可是有很大的缺陷,就是显示网页的窗口很小,学生的做业根本看不全,须要拖动底部和侧栏的滚动条。
粘贴图片.pngspa

Iframe + 遮罩层

遮罩层就是为了把下方的界面挡起来,而后让ifream的内容显示在遮罩层上,以实现全屏显示学生做业内容的效果,代码以下:日志

<div class="mask" *ngIf="showPopWindow">
 <iframe  class="popWindow"  height="500px" width="100%" name="iframe_work"></iframe>
<p><a target="iframe_work" style="display: none"
[href]="protocol + '//' + (this.work.student.no + '.' + host + '/' + getWorkDir()) | safeUrl"
#linkToWork>点击查看</a>
</p>
</div>

有关遮罩层的使用能够看一下这个文档:5 定制提示框【前】code

问题

利用showPopWindow这个属性控制遮罩层显示与否,后来就出现了这样的问题:
image.png
这就说明 #inkToWork 所在的a标签的内容还未渲染出来,那找这个元素就找不到,也就无法实现点击,一开始控制遮罩层的变量为true,可是里面的内容渲染不出来,后来解决了很久,也是不行。htm

解决

后来晚上开会的时候说了这个问题,才发现这个问题真的挺好解决的,可是本身钻牛角尖了,以前一直觉得src加的是文件,如今才知道能加连接,也是当时文档没看太明白吧,后来就改为了这个样子:blog

<div class="mask" *ngIf="showPopWindow">
  <iframe class="popWindow" height="94%" width="100%"  src="https://www.baidu.com/"></iframe>
  <button type="button" class="btn btn-primary btn-lg btn-block" (click)="exitPopWindow()">退出预览</button>
</div>

总结

在写功能以前,真的要好好看文档,每一种方法都认真看看,否则用的时候真的会吃大亏。

杂谈

此次考科三遇到了不少事情,让我进一步认识到了人性,感受本身仍是单纯好多,第一天要过去熟悉场地,而后每一个人跑了三圈,可是咱们车上一个过的都没有,感受也没啥,后来才知道能加练,N多RMB加三圈,第一圈由于不熟悉车(跟以前练的不同)不及格,然后的两圈都过了,感受也没有问题了。后来考试了,坐车上挺紧张的,可是开上车发现本身一点也不紧张,前面跑的都挺顺的,直到最后一个路口转弯,这个弯转过去,再走几十米我就能停车了,可是我在路口刚起步,就看到左边来了个骑电三轮的大爷,绝不减速就过来了,我就停车了,而后我就没了,第二次是由于一个路人路中央停车,而后由于其余缘由,我就没了。后来想了想,若是当时练习的时候遇到这状况,而后问一下该怎么作,是否是就万无一失了,其实代码也是这样,不知道会出现什么样的问题,可是多尝试,多问,那么下次遇到这问题也就不是问题了。但愿下次考试不会赶上过马路不减速的老大爷吧。

相关文章
相关标签/搜索