如何判断控件是否已加载完成

  判断一个控件是否已加载完成其实很简单,就是利用浏览器的解析顺序。通俗的说,代码的位置越靠前,就越先加载。例如:

< 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标签的前后加上脚本,例如

 

ExpandedBlockStart.gif 代码
<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调用,如下

ExpandedBlockStart.gif 代码
   < 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>

行了就是这么多了,有问题留言

 我每天都在进步

转载于:https://www.cnblogs.com/jjhe369/archive/2010/02/24/1672820.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值