hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
阅读:8025回复:23

【发布】【GM脚本】本论坛数楼器

楼主#
更多 发布于:2010-01-10 15:46
Firefox.net.cn 数楼器
http://userscripts.org/scripts/show/66095

脚本练习作。就是在楼层右下角显示楼层数字。
*需要先安装 GreaseMonkey 扩展。
支持 Autopagerize ;Autopager 应该支持吧。
--
更新:支持 Autopagerize !
附:Autopagerize 翻页代码【不再提供】

---
更新:把楼数放到帖子右上角。
---
更新:修正对“start”不在网址最后时不兼容的低级bug。
---
更新:支持投票帖(幸好又去那投票帖看了下)。
---
2011年11月16日更新:适应论坛的新样式。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
1楼#
发布于:2010-01-10 15:46
都说是练习作,没什么所谓。
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
2楼#
发布于:2010-01-10 15:46
可以,单独给你代码:
// ==UserScript==
// @name           Firefox.net.cn 数楼器
// @namespace      http://userscripts.org/users/86496
// @description    结束 www.firefox.net.cn 有楼没楼数的历史!
// @include        https://www.firefox.net.cn/forum/viewtopic.php?*
// ==/UserScript==

(function (){
var a = 0;
var a_floor = 0;
var q = document.location.search;
var qspairs = q.split('&');
	for (k = 0; k < qspairs.length; k++) {
		qvar = qspairs[k].split('=');
		if (qvar[0] == "start") {
			pre_count = Number(qvar[1]);
		}else
		{
		pre_count = 0;
		}
	}
AddCount(a);
window.addEventListener('AutoPagerize_DOMNodeInserted', function(){a++;AddCount(a);} ,false);
	
function AddCount(APpage){
	var rowsMain = document.evaluate('/html/body/div/table[' + (4+APpage) + ']/tbody/tr', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
	var allrowcount = rowsMain.snapshotLength;
	var floorcount = (allrowcount - 3) / 4;
	if(a==0)a_floor = floorcount;
	
	for (var i=1; i <= floorcount; i++){
		tdsp = document.evaluate('/html/body/div/table[' + (4+APpage) + ']/tbody/tr['+ (i*4-1) +']/td[2]/table/tbody/tr/td[1]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0);
		//tdsp.innerHTML = i + pre_count + APpage*a_floor;
		addtextbefore(tdsp, i + pre_count + APpage*a_floor);
	}
}

    function addtext(obj, text) {
        var content = document.createTextNode(text);
        obj.appendChild(content)
    }
	
	function addtextbefore(obj, text) {
        var content = document.createTextNode(text);
        obj.parentNode.insertBefore(content,obj);
    }

})();
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
3楼#
发布于:2010-01-10 15:46
hitsmaxft:那么新用户就会纳闷,怎么个个都在数楼数,明明就没有显示..回到原帖

这个好办,让版主给我置顶就行了  
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
4楼#
发布于:2010-01-10 15:46
2011年11月16日更新:适应论坛的新样式。

P.S. 5楼版主说“新程序”支持直接显示……囧……
P.S.2 新版改变真大,脚本基本重写,嗯……
P.S.3 支持 Autopagerize 不变,另,Autopagerize 已经自带本论坛的翻页规则了。
P.S.4 回帖后跳转的页面仍然不能正确数楼……请教解决办法!
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
5楼#
发布于:2010-01-10 15:46
alanfly:subsilver2和xsubsilver的论坛主题下看不见楼层。回到原帖

新论坛除了默认的样式,全部都没被 Autopagerize 支持……
看来我的脚本算好了,支持了三个样式……
sub 和 xsub 类似于旧论坛——也是我觉得比较难搞的结构——换旧版数楼器一样不行,比较麻烦……
以后再说,嗯。
游客

返回顶部