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 评论小技巧的支持。如果有任何问题,请在这儿留言。

31 条评论:

  1. hi Marcher,

    我按照这个帖子的说明更新了代码,但出现了一个新问题:当评论设置为弹出页面或整夜的时候没有问题,可正常留言;

    可如果设置为嵌入表单形式,则用户留言的时候,弹出的验证码窗口会一直显示Loading。。。

    不知道是什么情况,有时间的话,请帮我看看,谢谢!

    回复删除
  2. @cloudyyty:验证码和代码无关,是blogger方面的问题。

    回复删除
  3. @Marcher:再请教一下,你那个“回复此评论”的回复者后面的“:”怎么加上啊?我的旧版Blogger,我想把那个“:”换成空格。

    回复删除
  4. 很实用的功能,不错~

    回复删除
  5. 麻烦问一下,为何我找不到《/BlogItemComments》?

    以打开小工具

    回复删除
  6. @Luke:一般的模板里都会有着一段的,因为这是显示评论所必需的。
    你用的是旧的Blogger模板(Template)吗?

    回复删除
  7. 原来下半部分是在旧模板里实现回复功能的方法,是我没有看清楚,不好意思。

    试了下,用你的方法成功实现了回复功能,太感谢了!

    回复删除
  8. @植树:现在可以了吗?我也想实现这个功能

    回复删除
  9. @mifia:看到你已经实现了。恭喜:)

    回复删除
  10. @Luke:我也是没找到/BlogItemComments

    回复删除
  11. 又来烦你不好意思啦,我想请问一下,旧的模板怎么实现回复链接的功能呢?不好意思,谢谢你,嘿嘿

    回复删除
  12. @YoUng: 文章的下半部分就是旧的模板修改方法。按照说明,一步步地来。

    回复删除
  13. 这个功能很好玩!而且,如果你不喜欢这个代码显示出来的@,可以将@改为自己喜欢的。真是太好了。

    回复删除
  14. @William :)
    @William Hou 没错,后面escape的部分就是要填在文本框中的字符,可以随意更改。

    回复删除
  15. 这个必须得用了。呵呵。

    回复删除
  16. 此评论已被作者删除。

    回复删除
  17. 从CSS裸奔节无意之中点击到贵站的。

    回复删除
  18. 此评论已被作者删除。

    回复删除
  19. @ASAHI:XDDDD 我之前一直弄錯代碼,所以之前慌張地留言求助呢…後來剛剛吃飽了再看一次,才發現錯在哪兒…

    這就把原本的留言刪除了,再次謝謝您把這方法寫出來,教學得很仔細,造福不少人哪!!!

    回复删除
  20. @Celestine: 找不到哪一段呢?在修改HTML页面里勾选"扩展小窗口部件模板"了吗?

    回复删除
  21. 您好:

    我想以 http://pippep-tshirt.blogspot.com/
    這網站使用您的回覆此評論,但卻一直弄不上。
    過去另一個網站卻可行,過去自己所使用的模版是此站
    http://hsiaoyu1224.blogspot.com

    此二者樣版不大一樣,嘗試貼了許久,還是想跟您請教怎麼張貼好?

    感謝您

    回复删除

请勿张贴商业广告。评论可能需要审核。
No advertisement. Comment review enabled.