コメント投稿時のプレビューについて、いろんなトコロで紹介されているのかと思いますが・・・
忍ブロでは、管理者のコメント返信用の画面上ではプレビューできるんですよね。
で、こんなカンジでプレビューできたらいいなぁと思ってはいたのですが・・・。
先日、コメント投稿ボタンに加えて「やっぱヤメ」のクリアボタンを設置する方が安易にできたモノで(・∀・;)
なんかこの上にプレビューボタンまでつけたらゴチャゴチャするなぁと懸念していたんです。
そんな矢先に!!
yozoさんトコでの『
コメントプレビューを設置』の記事を見てみると、チェックボタンでプレビューするかしないかをコメント作成者が選ぶコトができるってハナシで

(゚▽゚*)
そういや、前に
strollさんトコで見たなぁと思ってたら、やっぱり出所は
strollさんトコでした(笑)
そんなワケで、さっそく設置をしてみました。
:::追記(8/29):::追記記事内で紹介しているソースで、忍ブロ(新規テンプレート)用に私が書き換えた部分がわかるように明示しました
:::追記2(9/11):::同様のコメントプレビュー設置されていたBLOGを発見しましたので、TBさせていただきました。
今日現在でTB先は以下の4件になります。
当記事の投稿時のTB
stroll::blog | コメントをプレビュー表示
yozoの気が向いたと記2.0
記事を紹介していただいた方のTB
Benjamin's Forum Site - べんじゃみんのブログ : コメントのプレビューを表示できるようにする
本日追加したTB
きまぐれ日記|ちょっぴりカスタマイズ。
詳しい説明は、
yozoさんの記事もしくは
strollさんの記事に書いてある通りですので省略します。
テンプレートによっては異なると思いますので、是非、参考記事の方も目を通してくださいね。
参考記事:yozoの気が向いたと記2.0(yozoさん):
『コメントプレビューを設置』
strollblog(strollさん):
『コメントをプレビュー表示』
『コメントプレビューを必要なときだけ実行するには?』
で、作業は大きく分けて3つ。
1.コメント投稿フォームで、textareaのidをつける
2.プレビューの表示部分を設置
3.プレビューを動かす為のscriptを埋め込む
ココではテンプレートの編集→HTML画面とにらめっこです(・∀・;)
HTMLの中から
コメントフォーム部分を探します。
そして、コメントを記載する部分にあたる<textarea~・・・>という部分を探します。
忍ブロの新しいテンプレートから作成したテンプレートなら、以下の通りになっているハズです。
<textarea class="CommentForms" name="comment" cols="40" rows="4"></textarea>
コレを以下のように書き換えます。
尚、
この色の部分は、忍ブロ(新規テンプレート)用に修正した部分になります。
<textarea class="CommentForms" id="comment" name="comment" cols="40" rows="4" onkeyup="doCommentPreview()" onblur="doCommentPreview()"></textarea>
そして次に、プレビューを表示させたい場所へ、以下のソースを入れ込んでしまいます。
<input type="checkbox" name="checkboxCommentPreview" value="" onClick="changeCommentPreview()" /> コメントをプレビューしますか?<br />
<label for="comment_preview">comment preview:</label><br />
<div class="CommentFormBlock" id="comment_preview">ご利用のブラウザ、設定ではご利用になれません。</div><br />
場所については、テンプレートのデザインやそれぞれの好みもあると思うのですが、私は記事作成部分のすぐ下に入れてしまいました。
「同じでいいや☆」って人は、ココまでの作業を全て盛り込んだ下記のソースをお使い下さい。
この部分を探します!!<tr>
<td class="CommentFormTh">Comment</td>
<td class="CommentFormTd"><textarea class="CommentForms" name="comment" cols="40" rows="4"></textarea></td>
</tr>
コレを↓のソースへ書き換えてしまいます。
<tr>
<td class="CommentFormTh">Comment</td>
<td class="CommentFormTd"><textarea class="CommentForms" id="comment" name="comment" cols="40" rows="4" onkeyup="doCommentPreview()" onblur="doCommentPreview()"></textarea></td>
</tr>
<tr>
<td class="CommentFormTh"><label for="comment_preview">preview?</label></td>
<td class="CommentFormTd"><input type="checkbox" name="checkboxCommentPreview" value="" onClick="changeCommentPreview()" /><br/><div class="CommentFormBlock" id="comment_preview">ご利用のブラウザ、設定ではご利用になれません。</div></td>
ここまで済んだら、あとは以下のscriptを埋め込みます。
埋め込む場所については、もっと他の場所でも構わないのかもしれませんが・・・。
とりあえず私は、投稿画面のスグ下、</table></form>の下に続けて入れ込んでしまいました。
<script type="text/javascript">
<!--
// コメントプレビューを制御
// ↓コメントプレビューをデフォルトでONにする場合は 1 、OFFにする場合は 0
var isCommentPreview = 0;
function changeCommentPreview() {
isCommentPreview = (isCommentPreview == 0) ? 1 : 0;
doCommentPreview();
}
// -->
</script>
<script type="text/javascript">
<!--
// コメントプレビュー
function doCommentPreview(mode) {
// コメント入力テキストエリアのid属性
var textAreaId = 'comment';
// プレビューを表示するタグのid属性
var previewAreaId = 'comment_preview';
// コメントプレビュー欄初期表示文字 または、画像タグ
var initString = '※チェックするとココにコメントのプレビューが表示されます。';
if ((null == mode || mode != 'init') && isCommentPreview == 0) return;
if (!isDoCommentPreview()) return;
if (!getElementCommentPreview(textAreaId) || !getElementCommentPreview(previewAreaId)) {
return;
} else if (null != mode && mode == 'init') {
getElementCommentPreview(previewAreaId).innerHTML = initString;
return;
}
var s = getStringCommentPreview(textAreaId);
if (null == s || '' == s || '<br />' == s) {
s = initString;
}
if (getElementCommentPreview(previewAreaId)) {
getElementCommentPreview(previewAreaId).innerHTML = s;
}
}
function getStringCommentPreview(e) {
var s = '';
s = getElementCommentPreview(e).value;
s = s.split('&').join('&');
s = s.split('<').join('<');
s = s.split('>').join('>');
s = s.split('\'').join('"');
s = s.split('\n').join('<br />');
return s;
}
function getElementCommentPreview(e, f) {
var l = (document.layers) ? 1 : 0;
if(l) {
f=(f) ? f : self;
var a = f.document.layers;
if (a[e]) return a[e];
for (var w = 0; w < a.length;) {
return getElementCommentPreview(e, a[w++]);
}
}
if (document.all) return document.all[e];
return document.getElementById(e);
}
function isDoCommentPreview() {
var ua = navigator.userAgent;
var doNotAgentList = [
ua.indexOf('Opera/6') != -1,
ua.indexOf('Mac') != -1 && ua.indexOf('MSIE 5') != -1
]
for (var i = 0; i < doNotAgentList.length; i++) {
if (doNotAgentList[i]) return false;
}
return true;
}
doCommentPreview('init');
//-->
</script>
以上で作業は終了です。
記事詳細画面のプレビューで『※チェックするとココにコメントのプレビューが表示されます。』と表示されていれば成功☆
更新して確認してみてください。
「に」だけ書かれてパスも入れてなかったでした
EDIT|RES
>「に」だけ書かれてパスも入れてなかったでした
・・・ごめんなさい(。。;)
テンプレートを変えたらプレビューがおかしくなってしまって、現在使用できなくなってるんですよ
やっぱり紛らわしいですよねぇ。
近いうちに何とかします!!(><;)
EDIT|RES
今後ともFF3関連ともどもよろしくおねがいしますね(^-^)
EDIT|RES
>今後ともFF3関連ともどもよろしくおねがいしますね(^-^)
ありがとうございました。
コチラこそ、今後ともよろしくお願いします♪(゚▽゚*)
言及のあるトラックバックは大歓迎です。
今後とも、よろしくお願い致します。
忍ブログって試したことないんですけど、コメントや投稿にスマイルアイコンの様なものがあるといいかも・・・。
EDIT|RES
>言及のあるトラックバックは大歓迎です。
>今後とも、よろしくお願い致します。
コチラこそ・・・。
ショボさ満載の何でもアリなBlogで申し訳ナイくらいなんですが
どうぞ、今後ともよろしくお願いします(・∀・;)
>忍ブログって試したことないんですけど、コメントや投稿にスマイルアイコンの様なものがあるといいかも・・・。
ん~・・・
策がナイというワケではナイんですよね。
実際、カスタマイズされてる方もいらっしゃいますので。
べんじゃみんさんのトコロはたくさんアイコンありましたもんね。
確かにあるといいのかも・・とべんじゃみんさんのトコロで思ったりしたのですが、なかなか手がソコまで回らなくって(。。;)
そんなワケで、ココでは絵文字でガマンしてもらってます(爆)
コメントプレビュー設置
オメデトーゴザイマッス♪(*⌒ー⌒)o∠★:゚*PAN!
相変わらず、コンパクトにまとまっていますね。
手順どおりサクサクできそうです。(゚-゚*)(。。*)ウンウン
追伸:トラバありがとーございまっす♪連続投稿もありませんでしたよ。サーバーが重くて(?)お手数かけましたね。m(_ _)m
こちらからも、返しのトラバをいれさせていただきました。
また、&は&amp;と書けばOKですよ。その他の青色の字の部分も同様です。
EDIT|RES
>コメントプレビュー設置
>オメデトーゴザイマッス♪(*⌒ー⌒)o∠★:゚*PAN!
ありがとうゴザイマス(〃゜▽゜)ノ
>相変わらず、コンパクトにまとまっていますね。
>手順どおりサクサクできそうです。(゚-゚*)(。。*)ウンウン
あいかわらずの不親切さ加減です。
考える部分はどっか行っちゃってて・・・( ̄m ̄*)
>追伸:トラバありがとーございまっす♪連続投稿もありませんでしたよ。サーバーが重くて(?)お手数かけましたね。m(_ _)m
おおぉぉぉ w(*・o・*)w
そりゃヨカッタです☆
エキサイトと比べてしまうと、FC2は断然重いですが・・・
ソネブロみたいに、悲しいどころか笑っちゃうくらい重い(というか繋がらない)BLOGだって存在しているのですからヘッチャラです(笑)
>また、&は&amp;と書けばOKですよ。
>その他の青色の字の部分も同様です。
(ノ゚ο゚)ノ オオオオォォォォォォ-
そっか、そうすればいいんだ!!
全く気がつかなかった・・・(。。;)
アタマ、カタイですねぇ・・・私・・・( ̄∀ ̄;)
それはそうと、TBありがとうゴザイマシタ☆