Script

本类阅读TOP10

·一个简单的javascript菜单
·网站流量统计代码
·可编辑的 HTML JavaScript 表格控件 DataGrid II
·JavaScript通用库(一)
·在网页中控制wmplayer播放器
·层遇到select框时
·TYPEING TEST ON LINE 在线打字测试 Free Software Javascript (aiiiq)
·javascript表单之间的数据传递!
·让网页自动穿上外套
·搜索gb2312汉字在网上的频率

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
javascript+xmlhttp+dom 写的一个统计小版主参与帖子和得分帖子数量的工具

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

     因为版主工作的需要,需要统计小版主的工作,以前总是用版主管理的回复查询手工统计,累的受不了了,用javascript + xmlhttp + dom 写了个统计工具。
以下是代码,请在晚上或周末的时候进行统计,要不速度太慢统计不出来


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>版主统计</title>
<script language=javascript>

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
xmlDoc.async = false;

function getSmallRoomList(doc,bigRoomId)  //得到大版下的小版列表
{
 var url = "http://expert.csdn.net/Expert/deeptree/rooms/" + bigRoomId + "/list.xml"
 doc.load(url);
 var nodeList = doc.documentElement.selectNodes("//Tree/TreeNode");
 var listArray = new Array(nodeList.length);
 for(var i=0;i<nodeList.length;i++)
 {
  listArray[i] = new Array(nodeList[i].getAttribute("NodeId"),nodeList[i].getAttribute("Title"));
 }
 return listArray;
}
function getSmallMasterList(doc,smallRoomId)  //得到小版的版主列表
{
 var url = "http://expert.csdn.net/Expert/Rooms/small/" + smallRoomId + "/Forum_" + smallRoomId + "_1.xml"
 doc.load(url);
 var line2 = doc.documentElement.selectSingleNode("//Forum/Top/Line2");
 var tmpStr = line2.text;
 var re=/\">[\S\s]*</ig;
 var smallMasterList=tmpStr.match(re)
 for(var i=0;i<smallMasterList.length;i++)
 {
  smallMasterList[i] = smallMasterList[i].substr(2,smallMasterList[i].length-3);
 }
 return smallMasterList
}

function streamtochar(StrStream)
{

 var stream = new ActiveXObject("ADODB.Stream");
 stream.type=1;
  stream.Mode=3;
  stream.Open() ;
  stream.Write(StrStream);
  stream.Position= 0;
  stream.Type= 2;
  stream.Charset="gb2312";
  var result= stream.ReadText();
  stream.Close();
  stream = null;
 return result;
}

function getTopicslist(ReplyUserName,roomId,type,month,year)  //得到帖子数量列表
{
 var url = "http://expert.csdn.net/xxx/xxx.aspx?room=" + roomId + "&type=" + type + "&ReplyUserName=" + ReplyUserName + "&month=" + month + "&year=" + year;  //这个地址CSDN还没有公开,所以我替换成xxx了,需要的朋友请找我要这个地址!
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.Open("GET",url, false);

 try
 {
  xmlhttp.Send();
  var result = xmlhttp.status;
 }
 catch(e)
 {
   return(false);
 }

 if(result==200)
 {
  var tmp = streamtochar(xmlhttp.responseBody);
  var re = /<td colspan="4" align="left">[\S\s]*<font color=red>/ig;
  try
  {
   tmp = tmp.match(re);
   tmp = tmp[0]
   tmp = tmp.split(":")[1]
   tmp = tmp.split(",")[0]
   return tmp;
  }
  catch(e)
  {
   //
  }
 }

 var xmlhttp = null;

}


function drawTable(sRoomList)  //输出结果
{
 var resultStr = "";
 resultStr += "<table border=1 width=\"100%\">";
 for(var i = 0 ;i< sRoomList.length;i++)
 {
  resultStr += "<tr bgcolor=\"#00CCFF\">";
  resultStr += "<td>" + sRoomList[i][1] + "版</td>";
  resultStr += "</tr>";

  resultStr += "<tr>";
  resultStr += "<td>";

  resultStr += "<table width=\"100%\"  border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#CCCCCC\">";
  
  resultStr += "<tr>";

  resultStr += "<td>版主</td>";
     resultStr += "<td>参与的帖子</td>";
  resultStr += "<td>得分的帖子</td>";

  
  resultStr += "</tr>";
  var smallRoomId = sRoomList[i][0].substr(8,sRoomList[i][0].length)
  var smallMasterList = getSmallMasterList(xmlDoc,smallRoomId)
  for(var j = 0;j <smallMasterList.length;j++)
  {
   if(smallMasterList[j]=="我要申请")
    continue;
   resultStr += "<tr>";
   resultStr += "<td>" + smallMasterList[j] + "</td>";
   resultStr += "<td>" + getTopicslist(smallMasterList[j],smallRoomId,"2","12","2003") + "</td>";
   resultStr += "<td>"+ getTopicslist(smallMasterList[j],smallRoomId,"1","12","2003") +"</td>";
   resultStr += "</tr>";
  }

  resultStr += "</table>";
  resultStr += "</td>";
  resultStr += "</tr>";  
 }
 resultStr += "</table>"; 
 return resultStr;
}

function doIt()
{
 if(bigRoomId.value=="")
 {
  alert("请输入大版ID");
  return;
 }
 var smallRoomList = getSmallRoomList(xmlDoc,bigRoomId.value)
 result.innerHTML = drawTable(smallRoomList);
}
</script>
</head>

<body>
<p align="center" class="style2">版主统计工具</p>
<p align="left">作者:awaysrain(绝对零度)<br>
时间:2004年1月2日<br>
版本:1.0测试版<br>
运行环境:IE6</p>
<p>请输入大版ID
  <input type="text" name="bigRoomId" value="3">
  <input type="submit" name="Submit" value="开始统计" onclick="doIt()">
<span class="style1">(建议在晚上或者周末人少的时候进行统计,速度太慢了统计不出来)</span></p>
<div id="result"></div>
</body>
</html>




相关文章

相关软件




月光软件程序下载编程文档电脑教程网站设计网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有