这个问题是firefox 调试出来的。纠结了几天了。
function Map() {   
    this.keys = new Array();   
    this.data = new Object();   
    this.put = function(key, value) {   
        if(this.data[key] == null){   
            this.keys.push(key);   
        }   
        this.data[key] = value;
return this;
    };   
    this.get = function(key) {   
        return this.data[key];   
    };
    this.remove = function(key) {   
        this.keys.remove(key);   
        this.data[key] = null;   
    };   
    this.each = function(fn){   
        if(typeof fn != 'function'){   
            return;   
        }   
        var len = this.keys.length;   
        for(var i=0;i<len;i++){   
            var k = this.keys[i];   
            fn(k,this.data[k],i);   
        }   
    };   
    this.entrys = function() {   
        var len = this.keys.length;   
        var entrys = new Array(len);   
        for (var i = 0; i < len; i++) {   
            entrys[i] = {   
                key : this.keys[i],   
                value : this.data[i]   
            };   
        }   
        return entrys;   
    };   
    this.isEmpty = function() {   
        return this.keys.length == 0;   
    };   
    this.size = function(){   
        return this.keys.length;   
    };   
    this.toString = function(){   
        var s = "{";   
        for(var i=0;i<this.keys.length;i++,s+=','){   
            var k = this.keys[i];   
            s += k+"="+this.data[k];   
        }   
        if(!this.isEmpty){
         s=s.substring(0,s.length-1);
        }
        s+="}";   
        return s;   
    };   
}    function Jfree(){
//this.imageName;
this.imageId;
this.url;
this.params;
this.run = function(imageId,url,params){
//alert(params);
this.imageId = imageId;
this.url = url;
this.params = params;
this.request(this);
};
this.request = function(){
//alert(jfree);
////xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");
var xmlhttp = this.getXmlRequest();
//alert(jfree.params);
  ///
  //xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");���û
  var temp = this;
      xmlhttp.onreadystatechange =function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var value =xmlhttp.responseText;
if(temp.imageId){
document.getElementById(temp.imageId).src=value;
return;
}
}
};
//var len = this.params.size();
var str = '';
/**for(var i=0;i<len;i++){
for(var property in this.params[i]){
var value = this.params[i][property];
if(value != null){
 str= property+'='+value;
 
}
}
}**/


if(this.params != null){
this.params.each(function(key,value,index){
str += key+'='+value+'&';
});
}
str = str.substring(0,str.length-1);
//alert(str);
if(str)
{
this.url +='?';
this.url += str;
}
//alert("url"+this.url);
// alert(this.url);
xmlhttp.open("POST",this.url,true);
//this.url = '';

xmlhttp.send(null); 
};
this.getXmlRequest = function()
{
//alert("444");
  var xmlHttp=null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
   // alert("Firefox");
  }
  catch (e)
  {
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
     // alert("IE 6.0")
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
     // alert("IE 5.5");
    }
  }
    return xmlHttp;
};

function doAction(imageId,url,params){
var jfree = new Jfree();
jfree.run(imageId,url,params);
}
function doTimer(imageId,url,params,milliSecond,isLoop){
//var map = new Map();
var jfree = new Jfree();
//alert(params.type);
////var map = new Map().put('name','pie').put('aaa','bbb');
//alert(${imageId});
//alert(params.type);
jfree.run(imageId,url,params);
alert(params);
if(params != null)
{ var map = new Map();
params.each(function(key,value,index){
map.put(key,value);
});
// alert(map.prototype);

 theTime=setTimeout('doAction(\''+imageId+'\',\''+url+'\','+params+')',milliSecond);
}else{
theTime=setTimeout('doTimer(\''+imageId+'\',\''+url+'\','+params+','+milliSecond+','+isLoop+')',milliSecond);
}
if(!isLoop){
window.clearTimeout(theTime);
}
}
高手看看!没有分了。
分都给换什么下载币币了。