七月
31

修正关于Ajax comments的一个小问题

很多人都用willin的Ajax comments,确实是一个非常好的功能,我也一直在用。

我用的版本还是很早期的版本了,期间willin进行了多次修改升级,我一直没动,甚至换了现在新主题还是使用原来的版本。期间一直有一个问题困扰我,那就是当你发表重复评论时,评论框下方会出现提醒,但是此时我的整个博客页面也就错位了。

虽然老早就发现过此问题,但是由于几乎没什么影响(除了不小心的,谁还会没事连发相同的评论呢?),而且刷新后页面就会正常,所以一直没有想过去更改。

今天又再次重现了这个问题,所以我看不下去了,决定查找原因。

我用firebug查看了页面,发现页面文档结构貌似并没有出现错位什么的,那么就是说问题是出在css中了。果然,我一眼就看到body的样式中多了

-moz-border-radius:11px 11px 11px 11px;

这么个东西,我可没搞过这玩意儿。fdf

如图中红线部分。

再看图中黄色部分,是在install.css样式文件中。我主题里可没这个文件。这个文件是在wordpress的wp-admin/css/这个目录中。看来是从外部引入的文件,页面有变化的也就是评论框下方显示错误信息的位置了。

于是我又查看了显示错误信息位置的源码,终于发现了错误根源wew

其结构如下

<div style="display: none; background: url(&quot;http://127.0.0.1/qiqiboy/wp-admin/images/no.png&quot;) no-repeat scroll left center transparent; padding-left: 20px; margin: 0pt auto;" id="commenterror">
 
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>WordPress › 错误</title>
    <!--就是下面这个通过link标签进来的样式文件搞的怪-->
    <link type="text/css" href="http://127.0.0.1/qiqiboy/wp-admin/css/install.css" rel="stylesheet">
    <p>重复发表评论,您好像发表过类似的评论。</p>
</div>

所这下就好办了,直接到ajax评论的那段js里,找到

$('#commenterror').show('slow').html(request.responseText)

我的是老版本,不知道新版本代码里还是不是这样,还存不存在这个问题。Smug

将上面的js代码加个正则过滤,如下

$('#commenterror').show('slow').html(request.responseText.replace(/<(?!p).*?>(?:.*?<\/.*?>)?/gi,''));

这样就会过滤掉<meta><link>和<title>标签以及他们中间的内容,只留下需要的<p>标签。

这下,果然页面不会再出现错误了。

注意:这个错误貌似不是普遍的,有的人的在发生重复发表评论错误时,返回的信息中貌似就只包括“重复发表评论,您好像发表过类似的评论。”这句话,而不包括其他的<mata>、<link>等信息。

本文标签: , , , ,

分享

本文短网址: http://qiqi.boy.im/60

这篇文章已经有 46 条评论

Comments (44) Trackbacks (2)
You can leave a response or Trackback this entry .
  1. 林木木 -#1

    真没遇到过……

  2. 流年 -#2

    好像没遇到过

  3. winy -#3

    同没遇到过,不会影响页面。。

  4. kisa747 -#4

    表示没遇到过~~

  5. 小邪 -#5

    囧,木有用willi的ajax评论,所以木有碰到过呢 ~

  6. mice -#6

    跟小邪童鞋一样…

  7. MOPVHS -#7

    么有看到过… :arrow:

    • 小邪 --#1

      @MOPVHS
      ……….. 你的头像在有loading.gif的几位盆友网站上看起来好囧 hoho ^O^ ~

    • QiQiBoY --#2

      @小邪
      呵呵,上个主题bluepaled加了去掉背景loading.gif的脚本,感觉用处不大,很少遇到头像背景透明的,所以这个主题就没加这个功能。。。。
      目前貌似就MOPVHS同学头像透明。。。 :grin:

    • MOPVHS --#3

      @QiQiBoY :arrow: 嘿,我的本意是让头像融入到各位同学的主题里~~~么想到跟loading.gif绝配了~~~

    • MOPVHS --#4

      @小邪 ╮(╯_╰)╭多亏我的头像才有这个奇观嘛~~~

  8. MOPVHS -#8

    么有看到过…

  9. 海天 -#9

    额 貌似我也没遇到……

  10. Page -#10

    嗯 我没有碰到国这个问题 你每天都会弄一会儿博客么

    • QiQiBoY --#1

      @Page
      额。。也没每天。。。最近有些时间,所以折腾一下了。。。
      其实有些东西是老早就弄上的,现在才写出来。。

  11. 扣扣网 -#11

    博主是个细心的人。哈哈。不过暂时还没遇到这种情况

  12. A.shun -#12

    看来挺麻烦的,还好没遇到

  13. 痔疮吃什么药 -#13

    小概率啊

  14. hey33 -#14

    hoho 谢谢分享~

  15. zwwooooo -#15

    没遇过,或者我忘了

  16. 3q博客 -#16

    invoe还是没有搞定ajax评论

    • QiQiBoY --#1

      @3q博客
      额。。。关于这个网上很多教程了,仔细看看,按着步骤来,会成功的。。

  17. Bee君 -#17

    willin的Ajax评论好多人在用~~不过这个BUG好少概率啊

  18. Alan -#18

    用新版的好久了,没什么问题

    • QiQiBoY --#1

      @Alan
      我的问题估计和我的wp版本或者主题有关。。。呵呵,反正能解决了。。 :smile:

  19. 林木木 -#19

    出现了~IE7下~赶紧用上~

  20. Alan -#20

    求解为Ajax comments评论增加楼层的方法。

  1. Hello WordPress!

    [...] 2010.07 我开始爆发了,我折腾了很多,首先是wordpress无限嵌套的完美解决WordPress嵌套回复的层深问题(无限嵌套)<一>,还有如何通过JS自动处理文中的图片宽高,这个方法我一直在用哦:我是如何处理文章中图片的。想知道我评论框的那么多功能从哪里来的么,你看完这些你也能拥有和我评论框一样强大的功能了:评论框的简单计数器(无需改动模板,附带输入字数限制功能),添加引用按钮——轻松打造属于你的WordPress引用回复功能、为评论框添加文字格式化编辑器、【多彩的评论】:让评论可以插入图片,更改文字大小、颜色、让你的评论框自由粘贴代码、修正关于Ajax comments的一个小问题。还有关于如何创建邮件表单页面的创建一个可设置cookie相关信息的内置Email联系表单;如果你也想要知道wordpress不同页面显示不同的评论数以及楼层的显示,那么这篇文章也许会给你帮助wordpress指定页面评论数+支持分页的楼层显示 [...]

  2. 给wordpress加上QapTcha验证

    [...] 即可,这样就会过滤掉<meta><link>和<title>标签以及他们中间的内容,只留下需要的<p>标签。此方法来源于:qiqiboy [...]

Leave a Reply

Hi , say something.

  • :?:
  • :razz:
  • :sad:
  • :evil:
  • :!:
  • :smile:
  • :oops:
  • :grin:
  • :eek:
  • :shock:
  • :???:
  • :cool:
  • :lol:
  • :mad:
  • :twisted:
  • :roll:
  • :wink:
  • :idea:
  • :arrow:
  • :neutral:
  • :cry:
  • :mrgreen: