实时显示Gravatar头像

实时显示Gravatar

在阅读一些外国Wordpress blog时,冰古都会留意到在留言的位置上会有一个Gravatar的图片,毫无疑问这是用于显示留言者的Gravatar。当我输入email地址后,我预计该Gravatar图片会实时地显示为我输入email对应的Gravatar。但很遗憾,在我写这篇文章之前我都没有发现有实时显示Gravatar的blog。没有,那我就弄一个吧。
Read More »

见鬼的WP2.8编辑器代码高亮

早两天新装了一个WordPress,2.7.1版的,不过很神奇的是,2.8里的功能已经能提前体验了。这不,我就尝到了我并不喜欢的代码高亮功能的s**t了。

我对在线编辑器的要求很简单,一个文本框加一个按钮就已经完全能满足我的要求了(事实上,文章编写区的文本编辑器我仍旧使用的是老旧的代码编辑器,而不是2.3才添加的TinyMCE编辑器)。我使用在线编辑器的频率并不高,一个月能用一次,已经够频繁的了。我的网络环境并不好,很烦那个不停转的圈。

见鬼的WP2.8编辑器代码高亮
Read More »

制作一个类似twitter的字符计数器

最近使用twitter多了起来,发觉她的字符计数器十分的完美,不管在输入框中进行粘贴还是剪切等操作,计数器都能迅速而准确地得到剩余字符数。看到如此完美的东东,总是让人想“据为己有”的,于是决定自己弄一个(虽然我还没想好应用到什么地方)。

制作一个类似twitter的字符计数器

首先看看人家是怎么做的,打开“源代码”, 😐 看到那一团团的代码,我有点发懵,还是自己想想吧。

我的想法是比较简单的:就是在触发某个事件后,对比定义的最大字符数(如twitter的140个字符)和已输入的字符数,得到可用字符数后,再打印到指定的区域上。

用上面的思路制作出来的计数器,是可以用的,但在剪切时,由于它不能触发javascript里现有的事件(可能是我不知道,因为javascript接触的比较少),所以计数器将不能实时地计算可用字符数。

一番折腾后,想到用循环的方法进行计算。也就是:当触发某个事件后,就隔一段时间对可用字符数进行一次计算。果然好使,到这里基本就能完美地呈现twitter字符计数器的样子了。 😈

javascript代码如下:

<script type="text/javascript">
<!--
var box = document.getElementById("box");
var numAll = 140;
var num = document.getElementById("num");
var next;
box.onclick = countIt;
function countIt() {
    t = setInterval("count()", 200);
}

function count() {
    if (box.value.length <= numAll) {
        next = numAll - box.value.length;
        num.value = next;
    }
    else{
        next = box.value.length - numAll;
        num.value = '-'+next;
    }
}
//-->
</script>

点击查看示例

WordPress中用Ctrl+Enter提交留言

由于某些软件和论坛的缘故,很多时候冰古blog上写完留言回复后,都习惯性地按下Ctrl+Enter进行提交留言,但基本上是不成功的,很多blog程序都没有加入这样的快捷键

Discuz等论坛都可以使用快捷键提交发贴和发贴,但因为觉得它们的代码太麻烦,所以一直没有去查找该快捷键的方法。直到有次在百度知道回复时,按下Ctrl+Enter提交竟然成功了,才打开它的源代码查看了下。一看才知道,实现的方法很简单,只需几行javascript就能搞定了。那么我们也在WordPress加上这个快捷键吧:

一、打开模板中的comments.php文件,查找到下面的内容:

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform" name="commentform">
<?php if ( $user_ID ) : ?>

如果你的form标签中没有name=”commentform”属性,那么请加上。
二、再往下拉一点,你可以看到类似的两行:

<p><textarea name="comment" id="comment" cols="55" rows="10" tabindex="4"></textarea></p>
<p><input type="submit" id="submit" tabindex="5" value="提交留言" /></p>

如果textarea标签上没有id属性,请按照上面的内容加上。如果在第二行中发现name=”submit”,将之删除。如果你发现还是不行,把id=”submit”改为id=”submitit”,这样肯定是可以了。
三、最后,在</form>的下面,添加下面的一段javascript代码后保存就行了。

<script type="text/javascript">
var commenttextarea = document.getElementById('comment');
commenttextarea.onKeyDown = quickSubmit(event);
function quickSubmit(event){
  if (event.ctrlKey && event.keyCode == 13){
    document.submitform.submit();
  }
}
</script>

貌似上面这句我搞错了document.submitform.submit();,顺便把代码兼容性弄好点,用上下面的代码,应该没问题了。

<script type="text/javascript">
var commenttextarea = document.getElementById('comment');
commenttextarea.onkeydown = function quickSubmit(e) {
  if (!e) var e = window.event;
  //alert(e.keyCode);
  if (e.ctrlKey && e.keyCode == 13){
    //alert('good');
    document.getElementById('commentform').submit();
  }
};
</script>

20090619新版本

<script type="text/javascript><!--//--><![CDATA[//><!--
    var commenttextarea = document.getElementById('comment');
    commenttextarea.onkeydown = function quickSubmit(e) {
        if (!e) var e = window.event;
        if (e.ctrlKey && e.keyCode == 13){
            document.getElementById('submit').click();
        }
    };
//--><!]]></script>

试试吧。

BTW:google换了favicon?google/谷歌 favicon