你用了window的setTimeout方法指定在一段时间之后执行某个函数,但是注意你所要执行的函数是在htc文件中的,它无法在html文件中被找到,所以出现缺少对象的问题

解决方案 »

  1.   

    同意楼上;window.setTimeout是在你的html也面中执行的。而你调用的函
    数mtest是在htc中的,这个函数对于html是不可见的.如果你一定要这样做可以在htc暴露一个方法给html页面//test22.htc
    <PUBLIC:COMPONENT>
    <PUBLIC:ATTACH EVENT="onclick" for="element" ONEVENT="Mclick()" />
    <PUBLIC:METHOD NAME="mtest" />
    <Script language="JavaScript">
    function Mclick(){mtest(1);}function mtest(mvar){
    alert('ok')
    mvar=parseInt(mvar)+1;
    if (mvar>100) return;
    //这里, mytest是绑定htc的element的id
    window.setTimeout('mytest.mtest('+mvar.toString()+')',1000)
    }
    </Script>
    </Component>
      

  2.   

    setTimeout(Function('mtest('+mvar+')'),1000)
    这样比较好。
      

  3.   

    var mt=Function('mtest('+mvar+')')
    setTimeout(mt,1000)
    这样也可以执行。
    第一句的含义是生成一个element的一个内部句柄
    第二句的含义是把这个句柄最为setTimeout的变量之一
    注意mt和mt()的区别,前者是一个函数的引用,而后者是执行这个函数。