今天遇到一个需求,在A页面上判断B页面是否加载完毕(B页面是第三方页面),加载完毕时隐藏loading动画。。。

而平时我们一般做的事是在B页面上判断B页面是否加载完毕,进行操作。

if(document.readyState == 'Loaded'){
// 我们的操作
//页面加载readyState的五种状态 原文如下:
//0: (Uninitialized) the send( ) method has not yet been invoked.
//0 - (未初始化)还没有调用send()方法
//
//1: (Loading) the send( ) method has been invoked, request in progress.
//1 - (载入)已调用send()方法,正在发送请求
//2: (Loaded) the send( ) method has completed, entire response received.
//2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
//3: (Interactive) the response is being parsed. 4: (Completed) the response has been parsed, is ready for harvesting.
//3 - (交互)正在解析响应内容
//
//4: (Completed) the response has been parsed, is ready for harvesting.
//4 - (完成)响应内容解析完成,可以在客户端调用了
}。

 那么在A页面做B页面(新页面)的加载判断,据我所知,这是做不到(也许是我不知道有其他更高明的方法),随采用了iframe的方式去做。在B页面嵌套在A页面里,就可以做了。
PS:一些框架,如NG,SUI等里面貌似可以做(我没有去尝试,为了一个loading引入一个大框架,血亏啊)。
话不多说,主要代码如下,
完整demo下载地址:https://pan.baidu.com/s/1o8yJLm6(包括了loading)
主要代码:
HTML:
<iframe id="frame" frameborder="0" src="">
</iframe>
JS:
iframe_load: function () {
//兼容IE7-8
    if ($('#frame')[0].attachEvent) {
$('#frame')[0].attachEvent('onload', function () {
$('#frame').show();
$('#loading').hide();
})
} else {
$('#frame')[0].onload = function () {
$('#loading').hide();
$('#frame').show();
}
}
},
CSS:
#frame{
height: 100%;
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
} 本身JQ也有load,但是本人没用成功,一直报错,报错JQ的东西。
试过$.load(),但是遇到跨域问题。

												

JavaScript在A页面判断B页面加载完毕(iframe load)的更多相关文章

  1. 【转】JS判断SWF,JPG加载完毕、兼容(Activex,plugIn)所有浏览器

    JS判断SWF,JPG加载完毕.兼容(Activex,plugIn)所有浏览器 这里主要说下监听SWF的加载. 网上流传已久的监听方法,只能在IE(Activex插件下)下实现.在使用plugin的浏 ...

  2. axios(封装使用、拦截特定请求、判断所有请求加载完毕)

    博客地址:https://ainyi.com/71 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 Node.js 中使用 vue2.0之后,就不再对 vue-resource 更新 ...

  3. Js判断CSS文件加载完毕的实例教程

    要判断这个 CSS 文件是否加载完毕,各个浏览器的做法差异比较大,这次要说IE浏览器做的不错,我们可以直接通过onload方法来处理CSS加载完成以后的处理: 代码如下 复制代码 // 代码节选至se ...

  4. web页面判断是否首次加载

    判断web页面是否是首次加载: if(!window.name){ window.name ='name' this.setState({ note:true })}

  5. javaScript & jquery完美判断图片是否加载完毕

    好久没写东西了,正好最近因为工作需要,写了一个瀑布流异步加载的程序. 今天就不谈瀑布流,来谈一下关于load的问题. ----------------------------------------- ...

  6. js判断图片是否加载完毕

    附件: https://www.jb51.net/article/102385.htm 问题:  .offset().top和$(window).scrollTop()每次刷新页面后滚动的值有时候会不 ...

  7. c#如何判断webbrowser已经加载完毕

    最近有个小程序需要采集网页源代码,但有的网页中JS脚本又会生成额外的代码,比如http://www.cnblogs.com/lidabo/p/4169396.html 红框部分便是另外加载的代码. 此 ...

  8. js判断网页是否加载完毕 包括图片

    <script type="text/javascript" language="JavaScript"> //: 判断网页是否加载完成 docum ...

  9. jquery判断图片是否加载完毕

    来源: <http://www.2cto.com/kf/201409/331234.html> 利用图片没有加载完成的时候,宽高为0.我们很容易判断图片的一个加载情况.如下: 思路:判断图 ...

  10. window.onload 和 DOMContentLoaded区别及如何判断dom是否加载完毕

    http://blog.allenm.me/2010/02/window-onload-和-domcontentloaded/ 其中使用IE不支持DOMContentLoaded,那么判断IE是否加载 ...

随机推荐

  1. iOS存储的三种方式

    iOS中存储的3中方式: 1.NSUserDefaults 注意存储基本对象类型是没有问题的,但是要存储自定义对象,则要将对象内所有的属性(或是需要存储的属性)序列化,实现NSCoding协议序列化. ...

  2. EL函数以及自定义标签的应用

    一.EL函数(调用普通类的静态方法) 编写步骤(自定义EL函数的编写步骤即自定义标签的编写步骤): ①编写一个普通的java类,提供一个静态方法,功能自定,例如下: package cn.wzbril ...

  3. 对于amqplib的使用心得

    最近在nodejs使用了amqplib--rabbitmq的nodejs客户端.封装在了express中,先来代码. var amqp = require('amqplib/callback_api' ...

  4. C# CodeFirst(EF框架)代码优先创建数据库

    namespace WebEF.Model{ public class ModelContext:DbContext //继承DBcontext 来自EF框架 { public ModelContex ...

  5. 推流和拉流的概念以及RTMP和HLS协议

    推流为将直播内容推送至服务器的过程:拉流为服务器已有直播内容,用指定地址进行拉取的过程. rtmp rtmp是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写. ...

  6. List转换成json格式字符串,json格式字符串转换成list

    一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...

  7. error C2512: “Rectangle”: 没有合适的默认构造函数可用

    解决办法可能为: 1.再构造一个空的显性构造函数:

  8. 第一个python程序

    一个python程序的两种执行方式: 1.第一种方式是通过python解释器: cmd->python->进入python解释器->编写python代码->回车. 2.第二种方 ...

  9. HDU 4757 Tree(可持久化Trie+Tarjan离线LCA)

    Tree Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others) Total Su ...

  10. Grandle全局变量定义及引用

    在Project的build.gradle脚本中定义一些全局变量 ext { compileSdkVersion = 21 buildToolsVersion = "24.0.1" ...