若是无法评论,则到【后台】–【评论】–【评论提交】–关闭【检查评论来源页 URL 是否与文章链接一致】【开启反垃圾保护】
开启后出现可以评论而无法回复的情况:
看看这个ZZ的AJAX是这么写的:

1
2
3
4
5
6
7
8
9
10
11
function submitmyform(){
$(".form_submit").attr("disabled","disabled");
$.post(
$("#comment_form").attr("action"),
{
author: $("input[name=author]").val(),
mail: $("input[name=mail]").val(),
url: $("input[name=url]").val(),
text: $("textarea[name=text]").val()
},function(result){$(".form_submit").removeAttr("disabled")});
}

在不改变以上代码的情况下,打开控制台可以看到Typecho的form的action属性指向一个URL,只评论文章的时候是正常结果,但是回复的时候就异常了,原因简单到不想说。
233

强行禁止回复按钮返回的false,然后等页面刷新后可以看到form的action属性发生了改变。这时候测试到回复功能恢复正常了,所以这个就是评论别人的时候用的URL,记下?parent=xx。再查看一下[回复]这个超链接,发现其href属性中?replyTo=xx?parent=xx有关联。这样一来只需要修改相关的JS,控制好form的action属性即可。
URL回复

解决代码:

1
2
3
4
5
6
7
8
9
10
tmp_form_action = $("#comment_form").attr("action");
$(".comment-reply a").click(function(){
var tmp = /(.*?)\?replyTo\=(.*?)\#/ig.exec($(this).attr('href'))[2];
//提取出replyTo=(xx)
tmp = "?parent="+tmp;
$("#comment_form").attr("action",tmp_form_action+"/"+tmp);
});
$("#cancel-comment-reply-link").click(function(){
$("#comment_form").attr("action",tmp_form_action);
});