用jQuery隐藏回头访客资料输入框

  上一篇文章提到的已经成功发表过评论的评论者在下次评论时仍需重新输入姓名,电邮地址的问题已经查明是由缓存插件Hyper Cache引起的,能找到的解决方法是利用js来解决,但无奈在我博客上测试不成功,只能暂时禁用此插件,同时在木木的指引下,我也发现了一个能提高访客体验度的功能:隐藏回头访客的姓名,电邮,网址输入框。

  按照木木提供的方法,我再次悲剧的发现用在我博客上并不能正常工作,只能再次Google&百度,找到最后,终于在Xiaorsz的博客中找到个利用jQuery实现的方法,测试后工作正常,下面写点改动的地方。

  首先,我们要编辑comments.php,在类似于:

<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1"/>

的评论者姓名输入框代码上方添加:

<?php if ( $comment_author != "" ) : ?>
<div id="welcome">
<?php printf(__(' Hi! 欢迎回来!<strong>%s</strong>.'), $comment_author) ?>
</div>
<?php endif; ?>

然后再把三个评论者姓名,电邮,网址的代码输入框用<div id="author_info"></div>包起来,到此,comments.php修改结束;

  然后,新建一个名为inputhidden的js文件,把Xiaorsz提供的代码放进去:

$(document).ready(function() { //开始
if($('input#author[value]').length>0){ //判断用户框是否有值
$("#author_info").css('display','none'); //将id为author_info的对象的display属性设为none,即隐藏
var change='<span id="show_author_info" style="cursor: pointer; color:#2970A6;">change &raquo;</span>'; //定义change,style是定义CSS样式,让他有超链接的效果,color要根据你自己的来改,当然你也可以在CSS中定义#show_author_info来实现,这样是为了不用再去修改style.css而已!
var close='<span id="hide_author_info" style="cursor: pointer;color: #2970A6;">close &raquo;</span>'; //定义close
$('#welcome').append(change); //在ID为welcome的对象里添加刚刚定义的change
$('#welcome').append(close); // 添加close
$('#hide_author_info').css('display','none'); //隐藏close
$('#show_author_info').click(function() { //鼠标点击change时发生的事件
$('#author_info').slideDown('slow') //用户输入框向下滑出
$('#show_author_info').css('display','none'); //隐藏change
$('#hide_author_info').css('display','inline'); //显示close
$('#hide_author_info').click(function() { // 鼠标点击close时发生的事件
$('#author_info').slideUp('slow') //用户输入框向上滑
$('#hide_author_info').css('display','none'); //隐藏close
$('#show_author_info').css('display','inline'); })})}}) //显示change

保存文件。

  接着,我们要载入jQuery框架,因为我之前添加过Willin大师的Ajax嵌套回复,已经在footer.php添加过,所以这一步我可以省略,没有添加过的童鞋可以在footer.php中加入:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

然后在下面继续添加:

<?php if ( is_singular() ){ ?>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/inputhidden.js"></script>
<?php } ?>

这部的先后顺序一定不能错,不然就无法成功。

  OK,到此用jQuery隐藏回头访客资料输入框的全部操作就完成了,快试试去吧!Enjoy !

博客主题再次修改

  由于之前对主题修改的我很是不满意,所以我再次进行了大幅度改动,现在的主题终于能让我连续看1分钟不会感到视觉疲劳了。

  再次唠叨下改动了几个地方:

  1.去除之前透明效果,部分位置用图片产生伪透明效果。
为什么要去除透明效果?因为在IE7/8下,雅黑字体与透明滤镜有兼容问题,会产生诡异的字体模糊效果,解决办法只能是禁用滤镜或使用其他非ClearType渲染的字体,进而导致页面整体及其不协调。
  2.对部分位置的文字添加了text-shadow属性,此效果在FireFox3.5.4中完美显示,在Chrome3.0.195.27中欠完美显示,在IE6/7/8中无效果,在其他内核浏览器中效果未知,希望各位能说说。
  3.对评论者头像添加了box-shadow属性(从Willin大师的博客中发现的),此效果只能在Firefox中显示。
  4.在博客副标题处添加了嘀咕消息显示,考虑到速度问题,嘀咕消息只显示在首页。
  5.综上所述,现在博客在Firefox中显示是最完美的,哈哈。

  再说下待修改的地方:

  1.还未能解决文章标题再IE6下的显示缺陷,暂时只能做hack变动标题颜色。
  2.未能解决已经成功发表过评论的评论者在下次评论时仍需重新输入姓名,电邮地址的问题。已经发现是缓存插件Hyper-Cache引起的,暂时禁用了。(表达的有点拗口)

  唠叨结束,对于上面的两个问题,希望知道的大大能指点下,谢谢!

百年难遇的软件推荐之QQDrNetMon

什么是QQDrNetMon?光从名字上还真看不出个所以然来,其实,如果我说这是一个QQ医生里面的剥离组件,大家就明白了,写这篇推荐是受到iPlaysoft介绍QQ医生此功能的影响,再本着方便广大不喜好安装QQ医生的人民群众,所以我决定对这个剥离组件进行推荐。

QQDrNetMon是干什么用的?能吃吗?
呃。。不能吃,它是用来监控计算机内所运行程序与互联网数据交换的速度与流量的,这么一句拗口的话可以简单理解为监控这些程序有没有偷偷的上传或下载数据。

QQDrNetMon的英文全称是什么呀?我在备考CET4,要抓住每一个学习的机会!
额,通过Google我知道了它的全称是QQ Doctor Net Monitoring。

QQDrNetMon需要安装吗?我最讨厌向注册表里面扔东西了!
恭喜你,它很符合你的胃口,解压后直接使用即可。(PS:对某些程序的监控可能要重启计算后才会生效。)

QQDrNetMon支持让我欢喜让我忧的Win7吗?Win7什么都好,就是对部分软件的兼容性不佳让我一直耿耿于怀。
再次恭喜你,在我32位的Win7 7600RTM上运行良好。

QQDrNetMon的原理机制是什么?我怎样才能确定我对某程序限制上传速度/禁止访问网络的操作已经生效了?
呃,作为一个写伪技术文章的blogger,我对它的原理机制还没弄懂,但是对于后面的问题,一个非常简单操作就能让你清楚,操作如下:

打开QQDrNetMon;运行一个浏览器程序;在QQDrNetMon里面找到浏览器的进程,如IE是iexplore.exe,Firefox的是firefox.exe;右键点击浏览器进程,选择禁止访问网络;再切回对应浏览器,访问个百度之类的服务器稳定、不存在被墙可能性的网站;如果发现网页打不开,那就证明QQDrNetMon已经在正常工作了。(PS:最后别忘记逆向操作一次。)

QQDrNetMon有什么实质用途呢?没实质用途的话那我可认为你是个蛋疼的人写了那么多的废话!
额,这东西可以让你了解为什么没下东西,但玩个游戏还会那么卡,看看是哪个程序正在偷偷上传吧,找到必须心狠手辣的把它咔嚓掉!

恩,你真好,谢谢你!要我怎么报答你呢?
呃,不谢~要感谢要报答去找原作者吧,再见!

什么?不给下载地址就休想逃掉?速度交出下载地址!
继续阅读“百年难遇的软件推荐之QQDrNetMon”

IE&Firefox Hack

首先,请原谅我一天之内连发两篇文章,且两篇文章标题上都出现了&,这并不仅仅是一个巧合,哈哈,不废话了,转入正题。

修改主题后,我发现了一个严重的问题,就是雅黑字体在IE7,IE8里面模糊的一塌糊涂,甚至不如宋体显示的效果好,而IE6很正常,在排除了字体大小等各种可能引发此现象的原因后,我找到了罪魁祸首——IE透明滤镜。

此时我的第一个反应就是给IE和Firefox做Hack,在网上翻了个遍后,找到了一段代码:

"\9" 例:"margin:0px auto\9;"这里的"\9"能区分所有IE和FireFox;
"*" IE6、IE7可以识别,IE8、FireFox不能;
"_" IE6可以识别,E7、IE8、FireFox不能。

也就是说,我把字体的CSS写成这样的话:

body{
font:14px/160% 'Microsoft YaHei',Arial,宋体,Tahoma,Sans-Serif;
font:14px/160% Arial,宋体,Tahoma,Sans-Serif\0;
*font:14px/160% Arial,宋体,Tahoma,Sans-Serif;
_font:14px/160% Arial,宋体,Tahoma,Sans-Serif;
}

理论上字体在IE6,7,8里面都是显示宋体,而在非IE浏览器里面显示雅黑了,但理论终归理论,实际应用起来就出问题了,它在Firefox里面也显示宋体而没显示雅黑,真是各种诡异不断啊,最后又只能继续Google&Baidu,功夫不负有心人,我找到了一段使IE8强行使用IE7渲染网页的头部代码,柳暗花明了,在header.php里添加

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

后,各种浏览器测试结果如我所愿。

今晚终于没有怀恨入睡了。。

最后附上一点资料:

关于IE Hack:http://bbs.blueidea.com/thread-2945721-1-1.html
关于使用IE滤镜后IE7,8中雅黑字体模糊:http://hi.baidu.com/icexile/blog/item/fe768f455897222ecffca39d.html

Gray&Green?

闲了这么久,终于花了一个晚上把wlsy童鞋的SimpleG主题修改完了。

话说每一次对主题的修改就是一次对CSS学习的过程,这不,这一次又学到了一点知识,在Firefox等对CSS规则支持良好的浏览器中,我们想实现div框体透明都会使用

opacity:

这个属性,但对于绝大部分网民使用的IE6.0或其内核的浏览器,它就不认这属性,这时,我们只能使用IE的透明滤镜

filter:Alpha(opacity=)

,但是在我使用这一属性的时候,发现它不起作用了,于是只有贯彻Google&Baidu的伟大方针,在对岸的一位朋友博客里发现了问题之所在,简单的说,加个

zoom:1

属性就能使IE滤镜发挥作用了,为什么呢?我也懒去深究。:)

就像每一次的主题修改总会出现一些莫名其妙的问题一样,这次它也如约而至了,当我在Firebug里调试侧边Recentcomments的CSS时,Firebug突然罢工了,任你怎么动任何地方的CSS时,浏览器里都不能作出反应,在高举马克思主义,毛泽东思想,邓小平理论后,我终于到达了解决问题的彼岸,原来是在我整合Recentcomments的CSS到主题CSS里面时发生了错误,原路走回后,问题解决了,说到这也顺便做个记录:

点击打开

其他也没什么能说的了,喜欢这个主题的朋友可以稍微关注下我的博客,待我完善后公开CSS。