greasemonkey for tianya

天涯看帖,只看楼主现在要3000积分了,本人穷人,想到试试用greasemonkey这个强大的Firefox插件(greasemonkey参考),写个用户来取代天涯自带的只看楼主的功能,从网上搜寻了下资料,

查看了下其页面:

JS变量 intAuthorId 表示文章作者的ID,而作者的每一篇帖子中都有<span value=”****”></span>,其中value值就是intAuthorId值。

因此进行判断,如果span的value != intAuthorId ,那么删除此回复。具体如下:


// ==UserScript==
// @name           tianyaLZ
// @namespace      tianyaLZ namespace
// @description    tianya zhi kan lou zhu
// @include        http://www.tianya.cn/techforum/content/*
// ==/UserScript==

(function(){
 function id(name){
 return document.getElementById(name);
 };
 function tag(name,elem){
 return (elem || document).getElementsByTagName(name);
 }
 function hasClass(name,type){
 var r = [];
 var re = new RegExp("(^|\\s)" + name + "(\\s|$)");
 var e = document.getElementsByTagName(type || "*");
 for(var j = 0; j<e.length; j++)
 if(re.test(e[j].className)) r.push(e[j]);
 return r;
 };
 var tySeeLz = id("__ty_vip_1");
 tySeeLz.removeAttribute("onclick");
 tySeeLz.addEventListener('click', seeLz, false);
 function seeLz(){
 var pContentDiv = id("pContentDiv");
 var items = hasClass("item","div");
 var itemsLength = items.length;
 for(var i=0;i<itemsLength;i++){
 var spans = tag("span",items[i]);
 if(spans[1] && spans[1].getAttribute("value") != unsafeWindow.intAuthorId){
 var delElem = spans[1].parentNode.parentNode;
 pContentDiv.removeChild(delElem);
 }
 }
 alert("只看楼主成功!")
 };
})();

注意:intAuthorId虽然是全局变量,即window.intAuthorId,但油猴必须用 unsafeWindow.intAuthorId 来调用。

Leave a Reply