少しのjQueryコードでWordPressのコメント欄にリアルタイムプレビュー機能を加える

Ads

少しのコードでWordPressのプラグインを
使わずにリアルタイムコメントプレビュー
機能を加える方法です。殆ど使わない、と
思いますが、他でも応用できるコードなの
で個人的にメモしておきたい。実装には
jQueryを使用します。

コメント欄にコメントを書いていて、長くなってくると確認するのが結構面倒だったりします。長いコメントが入るコンテンツならコメントのプレビュー機能があると親切かもしれません。

コード


こんなの↑

コメントを書いてるとプレビューにも反映される、という仕組みです。

<script type="text/javascript">
jQuery(document).ready(function(){
 
  //プレビュー欄をコメント欄下部に追加。
  jQuery("").add("<h3 id='preview-title'>コメントプレビュー欄</h3><div id='comment-preview'></div>").appendTo(document.body);
  jQuery("#comment-preview, #preview-title").insertAfter("#comment");
 
  //テキストボックスで叩かれた文字を表示する
  var $comment = '';
  jQuery('#comment').keyup(function() {
    $comment = jQuery(this).val();
    $comment = $comment.replace(/\n\n+/g, '<br /><br />').replace(/\n/g, "<br />");
    jQuery('#comment-preview').html( $comment );
  });
});
</script>

jQuery本体は読み込まれてるの前提で。こんな感じのコードを書くだけ。セレクタとかHTMLは必要に応じて便宜変更してください。

プレビュー欄は手動でマークアップしてもいいかもですね・・・keyup()でキーボード操作によるイベントを発生させ、replace()で打たれた文字を先に追加してあったdiv内に表示させます。replace()と正規表現に関してはwebopixelさんの解説が凄く分かりやすかったです。

あとはちょろっとcss

#comment-preview {
  border: 1px solid #ccc;
  padding: 5px 15px 15px 15px;
  }
h3#preview-title {
  margin-bottom: 5px
  }

コメント欄として書きましたけど、コードそのものは工夫次第で地味にいろいろなシーンで応用できるんじゃ無いかなと思います。

以下を参考にしました。デモもあるのでぜひ触ってみてください。

How to Add Live Comment Preview to Comment Textarea without Plugin