要创建对象才能调用............var WScript=new ActiveXObject("WScript.Shell");
WScript.Sleep();

解决方案 »

  1.   

    var WScript = new ActiveXObject("WScript.Shell");
    WScript.Sleep(100);
    我试过了,提示 对象不支持此方法或属性。查帮助发现Sleep()属于WScript对象,但是直接new ActiveXObject("WScript")又提示automation无法创建此对象。
      

  2.   

    这个不是每个浏览器都能创建的,需要浏览器的安全降到最低才能创建WScript.Shell,scripting.filesystemobject,shell.application,adodb.stream等的创建都要求浏览器权限降到最低你要sleep干什么,不是有setTimeout/setInterval吗?
      

  3.   

    当然了 ,是没有权限的 ,太危险你不能使用  setTimeOut 吗?
      

  4.   

    我要实现的功能是把异步的函数封装成同步的能够马上返回值的函数,用setTimeout我怎么想都无法做到在调用结束前返回值,
    至于权限问题可以为客户事先配置好。
      

  5.   

    只能说明setTimeOut你还不会用罢了 ,不是原因 
      

  6.   

    比如要设计一个这样的函数var value = null;function getValue() {
        net.send("key"); //异步,返回值通过事件回调函数receive()取得
        while(value == null) {
            // sleep
        }
        return value;
    }function receive(event) {
        value = event.data;
    }问题:用setTimeout()怎么改写?
          如果不能用setTimeout,怎么能够实现sleep?
      

  7.   

    异步处理时要用回调函数!sleep干嘛?!setTimeout也不必用!
      

  8.   

    不行的,WScript是不安全的脚本对像,会有安全提示
      

  9.   

    只能说你不会用setTimeout/setInterval
    var value = null;
    function getValue() {
    net.send("key"); //异步,返回值通过事件回调函数receive()取得
    //===========================
    setTimeout("receive()",100);//setTimeout第一个参数为你的异步执行函数,第2个参数是多少秒后执行,单位为毫秒
    //===========================
    }function receive() {
    if(xxxx)//xxxx为你检查取返回值对象的状态的,如果状态为已经返回了,则取返回值
    {
      value=xxxObject.返回值;
    }
    else//如果状态不是已经返回,则继续使用setTimeout检查状态
    {
    setTimeout("receive()",100);//setTimeout第一个参数为你的异步执行函数,第2个参数是多少秒后执行,单位为毫秒
    }
    }
      

  10.   

    如果用楼上的方法还是不行的,因为要设计的函数function getValue() 必须要返回value的值,而调用setTimeout()之后并没有返回value的值。比如用户在调用的时候应该是这样:
    var val = getValue();
    这个时候val中应该有需要的值。
      

  11.   

    用setTimeout来实现  别用那个方法  兼容性有问题  
    setTimeout(function(){
       方法(参数);
    },100);
      

  12.   

    可能前面说得还不是很明白,再补充一下。
    要设计的函数是这样的:var value = null;function getValue() {
        net.send("key"); //异步,返回值通过事件回调函数receive()取得
         var value = ??? // 如何取得value
         return value;
    }function receive(event) {
        value = event.data;
    }用户在调用的时候应该是这样: 
    var   val   =   getValue(); 
    这个时候val中应该有需要的值。
      

  13.   

    需要返回值的话估计只能换个方法,不要用var val=getValue();来返回,而在直接getValue(),所有在getValue()里面的函数里setTimeout里进行val=xxxxx,同样是一个全局变量。
      

  14.   

    我真不明白你说什么?12楼已经说的很清楚了,用12楼的方法就一定会有返回值,因为如果返回值没有得到,getValue()函数就不会结束。所以当用户使用
    var val=getvalue()时,要么得到返回值 要么就无限等待。