若是无法评论,则到【后台】–【评论】–【评论提交】–关闭【检查评论来源页 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,只评论文章的时候是正常结果,但是回复的时候就异常了,原因简单到不想说。
强行禁止回复按钮返回的false,然后等页面刷新后可以看到form的action属性发生了改变。这时候测试到回复功能恢复正常了,所以这个就是评论别人的时候用的URL,记下?parent=xx
。再查看一下[回复]这个超链接,发现其href属性中?replyTo=xx
与?parent=xx
有关联。这样一来只需要修改相关的JS,控制好form的action属性即可。
解决代码:
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]; tmp = "?parent="+tmp; $("#comment_form").attr("action",tmp_form_action+"/"+tmp); }); $("#cancel-comment-reply-link").click(function(){ $("#comment_form").attr("action",tmp_form_action); });
|