论坛首页 Web前端技术论坛

免费使用天涯.只看楼主,一个小小的bookmarklet

浏览 4319 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-30  
在天涯上看帖,发现精华与水贴并存,每每被那些刷屏者弄的不甚其烦,又或者帖子太热,寻找作者的跟帖像大海捞针。。。。

于是做了一个小小的bookmarklet,希望能为大家节省时间。

版本: 0.1 @ 2008.9.30

环境:
Firefox 3 (F2没有试过)
JQuery 1.2.6 (无需安装)
注:由于IE的bookmarklet能存的字符太少,通过引用url的方式为免太慢,所以未做IE的。

需求:
//第一次点击:默认第一位是楼主:加粗,打上authorMark,加css("display","block")
//第二次空白点击:对非楼主进行隐藏
//第二次输入点击:删除以前的authorMark,再对非输入的隐藏或显示
//第三次空白点击:对非楼主进行显示(还原)
循环。。。

使用:
请访问http://zjlovezj.iteye.com/blog/248224
将页面上一个“天涯.只看楼主”的链接拖到bookmark工具栏,在天涯的帖子页面单击bookmark。
(不太会用帖子的url,好像用它做不了bookmarklet)

代码:
先引入jQuery

if(jQuery("#seeThisUser").length == 0){
	jQuery("#firstAuthor td").eq(1).append("  <font color='red'>只看此人:</font><input id='seeThisUser'></input>");
	var iset = jQuery("#seeThisUser").offset();

	jQuery("#firstAuthor td").eq(1).append("<select id='authorSelect' onclick='__ty_vip.fn_look_by_writer_focus(this)'  ></select><input type='button' onclick='jQuery.filterLouzhu()' value='确定'/>");

	//一下几行代码感谢:http://www.deeka.cn/read.php/193.htm
	var inputerId = 'authorSelect';
	jQuery("select[id='authorSelect']").width(jQuery('#seeThisUser').width() + 4 + "px");
	
	jQuery("select[id=" + inputerId + "]").css({position:"absolute",
			left:function(){return iset.left - 25;},
			top:function(){return jQuery.browser.msie?iset.top:iset.top + 2 +"px"},
			clip:"rect(1px " + (jQuery("select[id=" + inputerId + "]").width() + (jQuery.browser.msie?6:8) + "px") + " " + (jQuery("select[id=" + inputerId + "]").height() + (jQuery.browser.msie?1:2) + "px") + " " + (jQuery("select[id=" + inputerId + "]").width() - 15 + "px") + ")",
			"font-size":jQuery("#seeThisUser").css("font-size")
		});
		
	jQuery("select[id='authorSelect']").change(function(){
			var nameStr = jQuery("option:selected",this).html();
			nameStr = nameStr.replace(/\(.*\)/g, "");
			jQuery("input[id='seeThisUser']").val(nameStr);
		});


}	
var louzhu;
jQuery.extend({
	filterLouzhu: 
		function(){

			if(jQuery("#seeThisUser").val().trim() == '' || jQuery("#seeThisUser").val() == null){
				louzhu = jQuery("#firstAuthor a").text();
			}else{
				louzhu = jQuery("#seeThisUser").val().trim();
				jQuery("table").removeClass('authorMark');
				jQuery("#pContentDiv div.content table").css('display','block');
				jQuery("#pContentDiv div.content table").next().css('display','block');
			}
			
			jQuery("table:contains('"+louzhu+"')").addClass('authorMark');
			
			if(jQuery(".content").attr('modify') != "true" ){
				var contentStr = jQuery('.content').get(0).innerHTML;
				contentStr = "<div>"+contentStr+"</div>";
				contentStr = contentStr.replace(/<table/g,"</div><table");
				contentStr = contentStr.replace(/<\/table>/g,"</table><div>");
				
				jQuery('.content').get(0).innerHTML = contentStr;
				jQuery('.content').attr('modify','true');
			}
			
			jQuery("#pContentDiv div.content table.authorMark").each(
				function(){
						jQuery(this).next().css('font-weight','bold');
				}		
			);
							
			jQuery("#pContentDiv div.content table:not(.authorMark)").each(
				function(){
						if(jQuery(this).css("display") == "block"){
							jQuery(this).next().css("display","none");
							jQuery(this).css("display","none");
						}else{
							jQuery(this).next().css("display","block");
							jQuery(this).css("display","block");
			  }
	 	  });

	 	  jQuery("#seeThisUser").focus();
	}
});

jQuery.filterLouzhu();



   发表时间:2008-09-30  
请教一个问题:
本想加个suggest的功能的,可惜不知道如何通过代码将select的下拉列表显示出来,如能请告知,thx
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics