判定iframe链接页面 服务器状态

计算机软件开发 2024-10-1 11:46:02 99 0 来自 中国
项目要求:

通过按钮点击事故,利用iframe来表现差别的内容(跨域)。
标题:

iframe链接内容的服务器未开启的时间,页面表现404, 用户体验太差。
要求:

服务器未开启的时间,表现页面必要友爱。
办理办法:通过盘算iframe的加载内容的时间,做超时判定,如果5s内未加载完成,就以为此时iframe链接的服务器未开启; 未开启的环境下,给iframe上层覆盖个div(内容自界说)。如许既可实现界面友爱。

风险: 存在。但是如今我未找到更好的办法去办理这个标题

代码如下:
btnclick(elem){   this.fullscreenLoading_all = true;  //表现加载框   this.ajaxError = false;    if(elem.URL == this.ifram_src){         this.fullscreenLoading_all = false;         return false;   }   //比及iframe数据加载出来之后再举行关闭加载框   let elurl = elem.URL;   this.ifram_src = elurl;   this.$nextTick(() => {      const iframeElem = this.$el.querySelector("#iframe_id");     //5s iframe 无任何加载内容,就使命iframe加载的毗连的服务器未毗连      this.serveTime = setTimeout(() => {           this.ajaxError = true;           this.fullscreenLoading_all = false;      }, 5 * 1000);      if(iframeElem.attachEvent){         iframeElem.attachEvent('onload', () => {             clearTimeout(this.serveTime);             this.fullscreenLoading_all = false;         })      }else{         iframeElem.onload = () => {             clearTimeout(this.serveTime);             this.fullscreenLoading_all = false;         }      } })},此中留意:

  • 要有加载框: 如果没有加载框,在疯狂且快速点击按钮举行iframe 的url 属性值切换的时间,会导致代码中的setTimeout的时间紧缩; 导致判定失误
  • 点击同一个按钮,加载的iframe内容类似,iframe的 url 值稳固的环境下,也就是下面这个判定:
if(elem.URL == this.ifram_src){         this.fullscreenLoading_all = false;         return false;   }肯定要利用returan false ; 不要让代码再举行实行了。
以上全部。 如果更好的办法办理,请留言。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:45, Processed in 0.151716 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表