加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > 正文

为iFrame添加动态载入提示优化用户体验

发布时间:2020-05-24 02:32:15 所属栏目:CMS系统 来源:互联网
导读:平常开发网站避免不了使用iFrame框架,但是当网络环境不好时iFrame内容一直都是直勾勾的加载,并且未加载完成之前还会强行占据一大片空白区域,体验很不友好!

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。脚本之家小编现在分享给大家,也给大家做个参考。

平常开发网站避免不了使用 iFrame 框架,但是当网络环境不好时 iFrame 内容一直都是直勾勾的加载,并且未加载完成之前还会强行占据一大片空白区域,体验很不友好!昨天在制作展示导航 wordpress 插件时,把这个问题也一并处理了,其中涉及到了这个 iFrame 动态载入效果,现在记录一下,顺便分享。

完整代码:

<div style="float: left;width: 205px;font-size: 13px !important;line-height: 20px;" id="loading">

<img style="floa: left;height: 20px;width: 20px;" src="/loading.gif" />

联盟导航加载中,请稍后...

</div>

<iframe id="zgboke" onreadystatechange=stateChangeIE(this) onload=stateChangeFirefox(this) style="visibility: hidden;padding: 0px; width: 100%; height="0" src="http://zgboke.com/hutui.html" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

<script language="javascript">

function stateChangeIE(_frame)

{

if (_frame.readyState=="interactive")

{

var loader = document.getElementById("loading");

loader.innerHTML = "";

loader.style.display = "none";

_frame.style.visibility = "visible";

}

}

function stateChangeFirefox(_frame)

{

var loader = document.getElementById("loading");

var f= document.getElementById("zgboke");

f.height="512";

loader.innerHTML = "";

loader.style.display = "none";

_frame.style.visibility = "visible";

}

</script>

以下是依葫芦画瓢的方法:

①、在 iframe 代码之前先插入一个 div 用于 iframe 载入前的显示,除了 id 需要一一对应,其他自行发挥即可。

②、将 iframe 的高度设为 0,并在原有 iframe 的基础上插入加载前和加载后的函数调用

onreadystatechange=stateChangeIE(this)

onload=stateChangeFirefox(this)

③、如代码的 8~28 行新增 2 个 js 函数即可,注意上下元素 ID 需要一 一对应;

④、其中 22 和 23 行禁止 iframe 未加载完成的空白占位,只有加载完成之后,才会将 iframe 的高度还原为 512。


Ps:代码涉及的元素 ID 对应及 CSS 调节,请自行搞定,就不赘述了。

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读