2009年2月10日星期二

更新:不用 Ctrl+V 的“回复此评论”代码

今天找了点儿时间重新完善了一下“回复此评论”的代码。我提供的这个方法的代码可用于 Blogger 的“布局”模式,稍作修改也可用于“模板”模式。

布局代码:

修改后的“回复此评论”功能更加完善,不再需要 Flash 插件,不再需要过多的说明,只需一次点击,需要添加的回复功能代码自动就会出现在回复框中。这个功能是基于 Blogger 弹出式评论的弹出窗口设计的,但是你无需在 Blogger 控制台选择“弹出式评论框”——你仍然可以使用你喜欢的回复评论方式(比如现在流行的“嵌入式评论框(Embedded Comment Form)”)。
<span class='comment-reply'><a expr:href='&quot;https://www.blogger.com/comment.g?blogID=BLOG-ID&amp;postID=&quot; + data:post.id + &quot;&amp;isPopup=true&amp;postBody=%40%3C%61%20%68%72%65%66%3D%22%23&quot; + data:comment.anchorName + &quot;%22%3E&quot; + data:comment.author + &quot;%3C%2F%61%3E#form&quot;' onclick='javascript:window.open(this.href, &quot;bloggerPopup&quot;, &quot;toolbar=0,location=0,statusbar=1,menubar=0,scrollbars=yes,width=400,height=450&quot;); return false;'>回复此评论</a></span>
BLOG-ID 需替换为你自己 Blog 的编号。
如果这是你第一次接触“回复此评论”的代码,请参看之前的帖子了解该如何操作。

这段代码会在评论框中插入形如下面代码的内容:
@<a href="#c1234567890">我是评论者</a>


模板代码:

把以下代码放在模板的 </head> 之前。
<ItemPage><script type="text/javascript">var fanch = "<Blogger><$BlogItemNumber$></Blogger>";</script></ItemPage>

把以下代码放在需要添加“回复此评论”的位置上,例如“小王说...”之后。
<span id="reply-<$BlogCommentNumber$>" title="回复此评论"></span>
把下面的代码放在 </BlogItemComments> 之前。
<script type="text/javascript">
var fname = '<$BlogCommentAuthor$>';
var fhtml = fname.replace(/<[^>].*?>/g,"");
var fname = escape(fhtml.replace(/&nbsp;/,""));
document.getElementById("reply-<$BlogCommentNumber$>").innerHTML = "<a href=\"https://www.blogger.com/comment.g?blogID=BLOG-ID&postID=" + fanch + "&isPopup=true&postBody=%40%3C%61%20%68%72%65%66%3D%22%23<$BlogCommentAnchorName$>%22%3E" + fname + "%3C%2F%61%3E#form\" onclick=\"javascript:window.open(this.href, \'bloggerPopup\', \'toolbar=0,location=0,statusbar=1,menubar=0,scrollbars=yes,width=400,height=450\'); return false;\">回复此评论</a>";
</script>
搞定。

希望这段新的代码能让 Blogger 回复评论方面的功能更加方便。
谢谢大家对我这些 Blogger 评论小技巧的支持。如果有任何问题,请在这儿留言。