判断控件是否已加载完成的代码

 更新时间:2010年02月24日 21:31:30   作者:  
判断一个控件是否已加载完成其实很简单,就是利用浏览器的解析顺序。通俗的说,代码的位置越靠前,就越先加载。
例如:
复制代码 代码如下:

<input id="btnPost" type="button" value="button" />
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" />

浏览器在解析时,首先加载 input标签,然后加载img标签。
  此时如果想判断img标签是否加载完成,可以在img标签的前后加上脚本,例如
代码
复制代码 代码如下:

<div id="loading"></div>
<input id="btnPost" type="button" value="button" />
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在生成图片控件...";//此处使用setTimeout函数不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga"/>
<script> document.getElementById("loading").innerHTML = "";</script>

注意此时的img标签前后的js代码,上面的js代码先获取img对象,然后判断该对象是否为空,如果是空的话说明没有加载完成,那么提示用户“正在生成图片控件”,加载完成后将提示信息隐藏。
  上面的方法适用于所有控件或标签,但是对于本身就具有onload事件的控件或标签(该事件在对应的控件或标签加载完成后触发),我们完全可以把img后面的代码封装成一个函数供onload调用,如下
代码
复制代码 代码如下:

<script type="text/javascript">
function loadedImg() { document.getElementById("loading").innerHTML = ""; }
</script>
</head>
<body >
<input id="autocomplete"/>
<div id="loading"></div>
<input id="btnPost" type="button" value="button" />
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在图片控件...";//此处使用setTimeout函数不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" onload="loadedImg();"/>
</body>

从上面的代码可以看出,img标签后面的代码已经封装成loadedimg方法被img的onload调用。
  那哪些控件或标签具有onload事件呢?我在网上查了,如下(不知道全不全):
<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
行了就是这么多了,有问题留言

相关文章

  • Babel转译失败的常见原因及解决方案

    Babel转译失败的常见原因及解决方案

    Babel是一个JavaScript编译器,用于将现代JavaScript代码转换为兼容旧版浏览器和运行环境的JavaScript代码,然而,在项目中使用Babel进行转译时,有时会遇到转译失败的问题,本文将详细分析Babel转译失败的常见原因,并提供相应的解决方案,需要的朋友可以参考下
    2025-02-02
  • JavaScript实现点击单选按钮改变输入框中文本域内容的方法

    JavaScript实现点击单选按钮改变输入框中文本域内容的方法

    这篇文章主要介绍了JavaScript实现点击单选按钮改变输入框中文本域内容的方法,涉及javascript单选按钮控制页面元素样式的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-08-08
  • JavaScript Dom 绑定事件操作实例详解

    JavaScript Dom 绑定事件操作实例详解

    这篇文章主要介绍了JavaScript Dom 绑定事件操作,结合实例形式详细分析了JavaScript实现dom绑定事件的相关实现方法与操作注意事项,需要的朋友可以参考下
    2019-10-10
  • 使用canvas及js简单生成验证码方法

    使用canvas及js简单生成验证码方法

    在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:1.生成一张画布canvas 2.生成随机数验证码 3.在画布中生成干扰线 4.把验证码文本填充到画布中 5.点击画布更换验证码
    2017-04-04
  • layui table 多行删除(id获取)的方法

    layui table 多行删除(id获取)的方法

    今天小编就为大家分享一篇layui table 多行删除(id获取)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 如何通过js实现图片预览功能【附实例代码】

    如何通过js实现图片预览功能【附实例代码】

    如何通过js实现图片预览功能呢?下面小编就为大家带来一篇用js实现图片预览功能。给大家做个参考吧,一起跟随小编过来看看
    2016-03-03
  • 快速上手uni-simple-router

    快速上手uni-simple-router

    这篇文章主要介绍了uni-simple-router,本文通过实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • TypeScript判断两个数组的内容是否相等的实现

    TypeScript判断两个数组的内容是否相等的实现

    本文主要介绍了TypeScript 判断两个数组的内容是否相等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • 前端使用正则表达式进行校验的方法总结大全

    前端使用正则表达式进行校验的方法总结大全

    很多时候我们需要校验用户输入的值是否正确,如果格式固定的,直接把错误的值传给后端显然是不合理的,所以我们要直接在前端进行正则校验,这篇文章主要给大家介绍了关于前端使用正则表达式进行校验的相关资料,需要的朋友可以参考下
    2024-07-07
  • firefox中JS读取XML文件

    firefox中JS读取XML文件

    firefox中JS读取XML文件...
    2006-12-12

最新评论