天涯,只显示楼主帖子的脚本(Greasemonkey)

上网、浏览、聊天、下载等
回复
头像
FatFish
帖子: 7
注册时间: 2007-08-04 0:53

天涯,只显示楼主帖子的脚本(Greasemonkey)

#1

帖子 FatFish » 2007-10-07 21:22

天涯的HTML写得实在太差,害得我的脚本也极其难看 :(

目前只支持第一页……


创建新用户脚本的时候,设置如下:

名字:随意
名字空间:cn.tianya
应用的网页:http://*.tianya.cn/*

Greasemonkey下载:http://addons.mozine.cn/firefox/16/

代码: 全选

// ==UserScript==
// @name           TianYa
// @namespace      cn.tianya
// @include        http://*.tianya.cn/*
// ==/UserScript==

var as = document.getElementById('pContentDiv').getElementsByTagName('A');

var wy = [];


var ac = as.length;
for(i=0;i<ac;i++){
    a = as[i]
    if(a.previousSibling && a.previousSibling.nodeValue == '作者:'){
        wy.push(a);
        while(a.parentNode){
            a = a.parentNode;
            //console.debug(a.tagName);
            if(a.tagName == 'TABLE'){
                wy[wy.length-1].t = a;
                break;
            }
        }
    }else if(a.innerHTML == '回复此帖'){
        if(a.parentNode.innerHTML.indexOf('<font color="black">[1]</font>') < 0){
            break;
        }
    }
}

wy[0].parentNode.innerHTML += ' [<a href="javascript:onlyShowLZ()" style="text-decoration: underline;">只显示楼主的帖子</a>]';


unsafeWindow.onlyShowLZ = function(){
	var p = wy[0].t;
	while(p.nextSibling){
	    p = p.nextSibling;
	    if(p.tagName == "DIV" && p.className == "content"){
	        break;
	    }
	}
	var c = p.firstChild;

	var j = 1;
	var jc = wy.length;
	var show = true;

	while(c){
	    if(c == wy[j].t){
	        if(wy[j].innerHTML == wy[0].innerHTML)
	            show = true;
	        else
	            show = false;
	        if(j < jc-1) j++;
	    }
	    d = c;
	    c = c.nextSibling;
	    if(!show){
	        p.removeChild(d);   
	    }
	}
}
回复