大家来研究一下CSDN论坛的筛选得分贴和人的JAVASCRIPT脚本

专注编程优化20年 2011-08-29 02:43:49
不显示 删除回复 显示所有回复 显示星级回复 显示得分回复
脚本页面地址:http://topic.csdn.net/u/t5/t5.js
部分代码学习:
用来分析得分的人和分数,还有回复人等,哈哈。

function updateReplyItems() {
if (!window.reply_items) {
var imgs = document.getElementsByTagName("img");
window.reply_items = {};
for (var i = 0; i < imgs.length; i++) {
var match = (/^grade\s+(\w+)$/i).exec(imgs[i].className);
if (match) {
var table = imgs[i].parentNode;
while (table && !(/^table$/i).test(table.tagName))
table = table.parentNode;
if (!table) continue;
grade = match[1];
var as = table.getElementsByTagName("a");
var username = "";
for (var j = 0; j < as.length; j++) {
match = (/^http\:\/\/hi\.csdn\.net\/(\w+)\/?$/i).exec(as[j].href);
if (match) {
username = match[1].toLowerCase();
break;
}
}
var dfns = table.getElementsByTagName("dfn");
var point = 0;
var layer = 0;
for (j = 0; j < dfns.length; j++) {
var p = /#(\d+)楼\s+得分:(\d+)/.exec(dfns[j].innerHTML);
if (p) {
layer = parseInt(p[1]);
point = parseInt(p[2]);
break;
}
}

var ls = table.getElementsByTagName("li");
var honor = null;
for (j = 0; j < ls.length; j++) {
if (ls[j].getAttribute("name") == "honor") {
honor = ls[j];
break;
}
}
var tds = table.getElementsByTagName("td");
var body = null;
var replyId = "";
var isdeleted = false;
for (j = 0; j < tds.length; j++) {
if (/^r?body/.test(tds[j].getAttribute("csdnid"))) {
body = tds[j];
var match = /(\d+)/.exec(tds[j].getAttribute("csdnid"));
if (match) replyId = match[1];
} else if (/^rmodify_/.test(tds[j].getAttribute("csdnid"))) {
isdeleted = /删除/.test(tds[j].innerHTML);
}
}
var divs = table.getElementsByTagName("div");
var recommend = null;
for (j = 0; j < divs.length; j++) {
if (divs[j].className == "rt") {
recommend = divs[j];
break;
}
}
reply_items[layer] = {
"grade": grade
, "table": table
, "body": body
, "username": username
, "point": point
, "honor": honor
, "recommend": recommend
, "replyId": replyId
, "isdeleted": isdeleted
};
}
}
}
}
...全文
82 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
大家一起来研究
  • 打赏
  • 举报
回复
function changeViewMode(select) {
updateReplyItems();
var myname = ("" + getCookie("UserName")).toLowerCase();
for (var i = 0 in reply_items) {
if (!reply_items[i].replyId) continue; // 非回复
reply_items[i].table.className = "mframe"; // 去掉隐藏属性
switch (select.value) {
case "0": // 全部显示
reply_items[i].table.style.display = "";
break;
case "1": // 星级回复
reply_items[i].table.style.display = !(/^user/i).test(reply_items[i].grade) ? "" : "none";
break;
//case "2": // 楼主回复
// reply_items[i].table.style.display = xxx == reply_items[i].username ? "" : "none";
// break;
case "3": // 得分回复
reply_items[i].table.style.display = reply_items[i].point > 0 ? "" : "none";
break;
case "4": // 自己回复
reply_items[i].table.style.display = myname == reply_items[i].username ? "" : "none";
break;
case "5": // 隐藏删除
reply_items[i].table.style.display = reply_items[i].isdeleted ? "none" : "";
break;
}
}
}

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧