不能加附件,还是贴上来吧,请将后面的代码分别保存成 trace.js 和 trace.html, sample.html
//--------------------------trace.js-------------------------------
 var tracewin = null;
 var tracenum=1;
 function trace(str){
   if(tracewin==null || tracewin.closed)
     {
      tracewin = window.open('trace.html','tracewindow',
        'height=400;width=100;top=600;left=800;resizable=yes');
     }
   if(tracewin){
        tracewin.traceStr(tracenum+":"+str);
       tracenum++;
   }
}function traceObj(obj){
  //return;
    var strObj='obj:'+obj+'\n\r';
    for(prop in obj)
    {
        if(obj[prop])
            strObj += ('\t'+prop +'='+obj[prop]+';\n\r');
    }   
    trace(strObj);
    return strObj;
}function format()
{
  var i, msg = "", argNum = 0, startPos;
  var args = format.arguments;
  var numArgs = args.length;
  if(numArgs)
  {
    theStr = args[argNum++];
    startPos = 0;  endPos = theStr.indexOf("%s",startPos);
    if(endPos == -1) endPos = theStr.length;
    while(startPos < theStr.length)
    {
      msg += theStr.substring(startPos,endPos);
      if (argNum < numArgs) msg += args[argNum++];
      startPos = endPos+2;  endPos = theStr.indexOf("%s",startPos);
      if (endPos == -1) endPos = theStr.length;
    }
    if (!msg) msg = args[0];
  }
  return msg;
}function tracefmt()
{
  var i, msg = "", argNum = 0, startPos;
  var args = tracefmt.arguments;
  var numArgs = args.length;
  if(numArgs)
  {
    theStr = args[argNum++];
    startPos = 0;  endPos = theStr.indexOf("%s",startPos);
    if(endPos == -1) endPos = theStr.length;
    while(startPos < theStr.length)
    {
      msg += theStr.substring(startPos,endPos);
      if (argNum < numArgs) msg += args[argNum++];
      startPos = endPos+2;  endPos = theStr.indexOf("%s",startPos);
      if (endPos == -1) endPos = theStr.length;
    }
    if (!msg) msg = args[0];
  }
  trace(msg);
}function traceHTML(){
  var parObj = document.body;
  while(parObj && parObj.tagName != 'HTML'){
    parObj = parObj.parentElement;
  }
    trace(parObj.outerHTML);
}function getTime(){
  var now= new Date();
  var strTime= now.toLocaleTimeString()+':'+ (now%1000);
  return strTime;
}
function traceTime(info){
  var strInfo = getTime()+':'+ info;
  trace(strInfo);
}
//--------------------------trace.html-------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript">
    function traceStr(str){
    var oOption = document.createElement("OPTION");
    form1.traceList.options.add(oOption);
    oOption.innerText = str;
    oOption.selected=true;
    //form1.btnClose.focus();
    }
    function traceInfoClick(){
      var nIndex=form1.traceList.selectedIndex;
      if(nIndex!=-1)
      {
        form1.txtComments.value=form1.traceList.options[nIndex].innerText;
        form1.btnCopy.disabled=false;
      }
      else
      {
        form1.txtComments.value='';
        form1.btnCopy.disabled=true;
      }
    }
    function CopyData()
    {
      var nIndex=form1.traceList.selectedIndex;
      if(nIndex!=-1)
      {  
        strSelect = form1.traceList.options[nIndex].innerText;
        window.clipboardData.setData('text',strSelect.substr(strSelect.indexOf(':')+1));
       }
    }
    function ClearData()
    {
        form1.traceList.innerHTML="";
    }
  </script>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>JavaScript Tracer;</title>
</head>
<body>
<form name="form1">
  <center>
    <select name="traceList" style="width:80%;height:40%" size="2"
      onclick="traceInfoClick()">
    </select><br/>
    <TEXTAREA style="width:80%;overflow:scroll" name="txtComments" rows="10">
    </TEXTAREA>
  </center>
  <p align="right">
      <input type="button" value="Clear" name="btnClear" 
      onclick="ClearData()"/>
    <input type="button" value="Copy" name="btnCopy" 
      onclick="CopyData()" disabled="disabled"/>
    <input type="button" value="Close" name="btnClose"
      onclick="window.close()" align="right" />
  </p>
  </form>
</body>
</html>//--------------------------Sample.html-----------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> TestJavScriptTrace </title>
<script language="JavaScript" src="trace.js"></script>
</head><body>
<input type ="text"name ="val1" size="30" value = "11111"><br/>
<input type ="text"name ="val2" size="30" value = "22222"><br/>
<input type ="text" name ="result" size="30" value = "33333"><br/>
<input type ="button" onclick = "tracefmt('%s add %s = %s', val1.value, val2.value, result.value)" value = "TestTrace">
</body>
</html>