为 WordPress 添加 Ctrl+Enter 快捷回复

最近,有些童鞋反映希望 Melody 能添加一个使用 Ctrl+Enter 进行快捷回复的功能。的确,在各大论坛以及我们常用的 QQ 上,都是使用 Ctrl+Enter 快捷键进行回复的,但因为 Kayo 并不常常使用这个功能,因而并没有添加这个功能到 Melody ,而今天心淡若水童鞋再次提醒 Kayo 需要这个功能,于是我马上添加这个功能到 Melody 。

 

这里送上两种方法,首先是 jQuery 方法,前段时间一直在研究 jQuery ,因此对 jQuery 方法比较熟悉,如果你的主题本来已经加载 jQuery 库,建议你使用下面的方法。

 

把这段代码加入 js 文件中,如果你已经加载 jQuery ,现在就可以使用 Ctrl+Enter 进行快捷回复。

jQuery(document).ready(function($){                   
//Ctrl+Enter回复
    jQuery(document).keypress(function(e){
        if(e.ctrlKey && e.which == 13 || e.which == 10) {
            jQuery("#commentform").submit();
        }
    })
});

 

解释一下代码,在 chrome 等现代浏览器中, js 是使用 e.which ==13 判断 Enter ,在 ie6 中, js 是使用 e.which ==10 判断 Enter 。

 

另一种方法是使用原生的 js ,在 Kayo 学习 jQuery 后,对原生 js 也产生了兴趣,于是上网订购了一本《JavaScript权威指南》,话说这书竟然有 900 多页,虽然有 300 多页是附录,但要看完也不容易, Kayo 当然不会全部看完才实践啦,于是利用一点 js 知识,折腾了 Ctrl+Enter 回复的 js 版,如果你的网站本来没有加载 jQuery 库,使用以下方法就比较方便。

 

在 comments.php 中找到一段类似以下代码(即评论框的代码),

<textarea name="comment" id="comment" rows="10" cols="50" tabindex="4"></textarea>

 

替换为以下的一段代码:

<textarea name="comment" id="comment" rows="10" cols="50" tabindex="4" onkeydown="if(event.ctrlKey&&event.keyCode==13 || Key&&event.keyCode==10){document.getElementById('submit').click();return false};"></textarea>

 

实现 Ctrl+Enter 快捷回复的原理跟 jQuery 版的差不多,这里就不作详细解释了。具体的效果,各位童鞋回复一下本文就知道了!

 

本文由 Kayo Lee 发表,本文链接:https://kayosite.com/ctrl-and-enter-to-submit.html

评论列表

  • 评论者头像
    回复

    这个我主题上有,我就不操这个心了!
    哈哈

  • 评论者头像
    回复

    我先实验下
    以前我发的那个很多盆友说不能实现
    后台发现原来挺挑主题的
    嘿嘿 有这个 发布信息给力多了
    HOHO

    晕 不行啊

  • 评论者头像
    回复

    一般的主题都带这功能的~~ :mrgreen:

  • 评论者头像
    回复

    现在的主题都会带上这功能了。

  • 评论者头像
    回复

    新功能喔!但系点解唔得噶?

  • 评论者头像
    回复

    还可以加一个 ALT+S的快捷回复~~嘿嘿。

    • 评论者头像
      回复

      @Leyar 刚刚才知道qq上有这个快捷键,我惭愧了 :cry:

      • 评论者头像
        回复

        @Kayo QQ上我习惯性的Enter快捷键。 嘿嘿, 睡觉啦, 晚安~~

        • 评论者头像
          回复

          @Leyar 我QQ上用的也是Enter,第一次用QQ时就改成Enter了,感觉比较顺手。不过貌似不少童鞋都是Ctrl+Enter回复,Enter换行。。
          晚安,Leyar :)

  • 评论者头像
    回复

    我觉得还可以在加一个ajax 的无刷新评论功能。 这样,提交之后还可以继续修改。

    • 评论者头像
      回复

      @Leyar 其实已经添加了Ajax评论,只是关闭了提交后再编辑的功能!

      • 评论者头像
        回复

        @Kayo 喔。。如此如此。。这般这般。。。

        • 评论者头像
          回复

          @Leyar 嗯嗯,正是正是! :-P

          • 评论者头像
            回复

            @Kayo 那为啥要去掉那个功能呢?挺好的呀。。(其实主要是。。我老打错字。。)

            • 评论者头像
              回复

              @Leyar 其实是否取消这个功能也让我纠结了一会,摘自我上一篇文章——这个功能的原意是让那些不小心打错字的童鞋有机会更正,但在使用了一段时间后,我发现了我评论时没有那么专心了,因为打错了可以再编辑,我觉得这个功能破坏了评论的即时感觉,大概评论就是这样,一开始的最能一针见血,哪怕不小心出现了错字!

            • 评论者头像
              回复

              @Leyar 话说我也常打错字,所以不排除上面的那大段字会有错字噢

              • 评论者头像
                回复

                @Kayo 喔,。。原来如些。不过说得也有道理,一开始说的往往都是最真实的想法,然后发表了之后回头一看, 总是习惯性的涂涂改改,尽量修饰措辞什么的,就失掉了原汁原味了。 哈~ 不过嘛,虽说是这样, 还是比较喜欢可以编辑的。。没办法。。拼音输入法太不知能了,而我打字又总是不仔细看 。。囧。。

                • 评论者头像
                  回复

                  @Leyar 看到一些这么详细的回复,写文章又有动力了,哈哈,其实打错字也没关系吧,我会看懂的!

  • 评论者头像
    回复

    js文件在哪啊

  • 评论者头像
    回复

    真噶喔,好神奇啊~~ :wink:

  • 评论者头像
    回复

    :oops:

  • 评论者头像
    回复

    :lol: 从第一次用QQ开始我就改成Enter发消息。

    • 评论者头像
      回复

      @Ben 我也是第一次用QQ时就改成Enter了,比较顺手。不过貌似不少童鞋都是Enter换行,Ctrl+Enter发消息。

  • 评论者头像
    回复

    这主题是有点想走轻博客的影子

    • 评论者头像
      回复

      @无冷 其实只是主题比较简洁,我专注的还是独立博客的形式!

  • 评论者头像
    回复

    哈哈我也来看看你了啊

  • 评论者头像
    回复

    已经有了呢 :mrgreen: :mrgreen:

    • 评论者头像
      回复

      @win8迷 哈哈,有了就不用折腾了。
      Ps.奇怪,怎么你的回复被Akismet拦截了~

  • 评论者头像
    回复

    这个还挺实用的

1 2

回复

你正在以游客身份访问网站,请输入你的昵称和 E-mail