function(id, oldval, newval)    有什么用?
      {
        foochange(newval);
        return newval;
      }
  this.setAttribute('oninput', '(' + foochange.toString() + ')(this.value)');  何意http://www.jslab.org.cn/?tag=easyChange打不开 
var easychange = function(foochange)
{
   if( ! foochange || foochange.constructor != Function)
   {
      return;
   }
   try
   {
      this.watch("value", function(id, oldval, newval)    //
      {
         foochange(newval);             //
         return newval;                      ///
      }
      );
   }
   catch(e)
   {
   }
   this.setAttribute('oninput', '(' + foochange.toString() + ')(this.value)');
   this.onpropertychange = function()
   {
      foochange(this.value);
   }
   ;
   this.onmousemove = function()
   {
      foochange(this.value);
   }
   ;
   this.onkeyup = function()
   {
      foochange(this.value);
   }
   ;}

解决方案 »

  1.   

    这个...忘了写注释鸟,不过里边貌似除了watch需要稍微提一下,其他的都应该OK吧?
    /* watch是Mozilla浏览器私有方法,用于捕获对象属性的改变   它有2个形参,property,callback(objectID,oldValue,newValue)
    */
    this.watch("value", function(id, oldval, newval)
    {
             foochange(newval);/* 执行指定的方法foochange,将newValue传递进去 */
             return newval;    /* watch方法要求有一个return值,否则被监听的property值会返回undefined */
    }
      

  2.   

    感觉这句可以简化一下:
    if (!foochange || foochange.constructor != Function)
    /////
    if (typeof fochange != "function") return;
      

  3.   

    http://www.jslab.org.cn/?tag=easyChange打不开 
      

  4.   


    <h1>兼容处理input控件值改变事件</h1>
    <dl>
    <dt>兼容处理:</dt>
    <dd>手动输入事件捕获:手动输入内容时会触发</dd>
    <dd>复制粘贴事件捕获:复制粘贴内容时会触发</dd>
    <dd>程序设置事件捕获:javascript程序动态设置内容时会触发</dd>
    <dd>拖入事件捕获:选定内容拖入时会触发</dd>
    </dl>
    <input type="text" id="x">
    <label id="lbl">label</label>
    <button>设置input值</button>
    <script type="text/javascript">
    var dlbl = document.getElementById('lbl'),dbtn = document.getElementsByTagName('button')[0];var setLabel = function(svalue){dlbl.innerHTML = svalue;};var easychange = function(foochange){
        if(!foochange||foochange.constructor!=Function){return;}
        try{this.watch("value",function(id,oldval,newval){foochange(newval);return newval;});}catch(e){}
        this.setAttribute('oninput','('+foochange.toString()+')(this.value)');
        this.onpropertychange = function(){foochange(this.value);};
        this.onmouseover = function(){foochange(this.value);};
        this.onkeyup = function(){foochange(this.value);};
    };var dx = document.getElementById('x');
    easychange.call(dx,setLabel);
    dx.value = 'hello';
    dbtn.onclick = function(){dx.value = 'btn set ...';};
    </script>
      

  5.   

      function(id, oldval, newval)
          {
            foochange(newval);
            return newval;
          } 这三个参数是不是有的是废的