我以前写过一个“豆瓣只看楼主”的GM脚本,已经有比较长时间了,douban现在页面有些改动
以前使用的xpath,前几天用jquery改写了下,代码简洁了很多 如果你是firefox浏览器,并且安装了grease
monkey插件
那么点击这里,就会弹出安装窗口
用于douban小组中的"只看搂主",会把楼主的帖子加边框,同时,添加快捷键n,p
“n”: 跳转到楼主下一个帖子,如果到了本页结尾,则跳回第一条
"p" 跳转到楼主下一个帖子,如果到了本页结尾,则跳回下一页
另附代码:
// ==UserScript==
// @name douban高亮楼主
// @namespace http://blog.notsobad.cn
// @description 实现douban小组中的"只看搂主"
// @include http://www.douban.com/group/topic/*
// @require http://jqueryjs.googlecode.com/files/jquery-1.3.2.js
// ==/UserScript==
var log = (unsafeWindow.console && console.log) || GM_log;
var lz_iz, lz_url;
var temp = /&_lz_id=([^&\/\#]+)/.exec(location.href);
if(temp){
lz_id = temp[1];
lz_url = "http://www.douban.com/people/"+ lz_id + "/";
}else{
// First page
lz_url = $('div.user-face:first a').attr('href');
lz_id = lz_url.split('/people/')[1].replace('/','');
}
$('.paginator a').each(function(){
var sep = $(this).attr('href').indexOf('?') != -1 ? '&' : '?';
$(this).attr('href') += sep + '_lz_id=' + lz_id;
});
//高亮楼主, 添加锚点
var lz_list = [];
$('.topic-reply > li').each(function(){
//user = table.getElementsByTagName('a')[0];
$user = $(this).find('a');
//log("now user: " + user.href);
if($user.attr('href') == lz_url){
$(this).css({'border':"5px solid black", 'overflow':"scroll"});
lz_list.push(index);
$(this).prepend($('<a name="+index+"/>'));
}
});
//快捷键
var i = 0;
document.addEventListener('keydown', function(e){
if(e.target.tagName == 'INPUT' || e.target.tagName == 'TEXTAREA') return;
var has_more = !!lz_list && i < lz_list.length && true;
// 'n'=>78, 'p'=>80, 'j'=>74
if(!has_more){
if(e.keyCode == 80) location.href = pages[pages.length-1].href;
else if(e.keyCode == 78) i=0;
return;
}
if(e.keyCode == 78 || e.keyCode == 80){
//log('Moving next....');
location.href = '#' + lz_list[i];
i++;
}
},false);
log($('.user-face:first'))