Typecho 使用AJAX评论无法正常回复

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

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回复

解决代码:

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);
});

标签: 主题, bug, typecho

添加新评论