気が付くと風薫る5月。 ライターというよりエディターぽく4月を過ごした管理人です。
システムの制限強化で一時はパニックに陥ったものの、版組方式改変と強力なツール構築でこれに対応し、以前よりも「楽」に仕事が進むようになりました。 「ピンチはチャンス」 という格言?を実感しております。
(それはそれとして) 本日FORUMにて鮮度の高いネタが目に留まりました。
曰く 「コメントを送信した後の表示位置をその(送信した)コメントのトップにしたい」
通常コメント送信後には親記事の個別頁TOPが表示される訳ですが、自分が今送ったコメントを直に御覧になりたいとの御質問です。 ・・・全くもって御尤もな考えです。
html(独自)タグのみでは中々難しいように思われますが、
「何とかならないか」 と試みてみた処、スクリプトを使用して実現する事ができました。
【 設定法 】 各コメント(のタイトル等)に IDを設定します
(コメントリストからコメントを頭出しできるテンプレートはそのようになっています)
123番目のコメントのIDが ”c123” である場合、テンプレート(HTMLソース)の </body> タグ手前に以下のようなスクリプトを書きます。
<!--permanent_area-->
<script type="text/javascript"><!--
if (document.getElementById && window.location.hash==""){
function cRoll(){
var r=document.referrer; var N="";
if (r.indexOf("mode=edit")>0){
N=r.split('no=')[1].split('&')[0];
} else {
if (r.indexOf(<%pno>+".html")>0 || r.indexOf("no="+<%pno>)>0 ){
N=<!--rcomment-->"<%rcomment_no>";n=<!--/rcomment-->"";
} }
if(N!="") document.getElementById("c"+N).scrollIntoView();
} cRoll();
}
//--></script>
<!--/permanent_area-->
設定作業は以上です
【 解 説 】
permanent_area の独自ブロックに収納されたソース末尾のスクリプトは記事個別表示モードでのみ作動します。 コメント投稿(”編集”も同じ)直後に表示されるのは親記事の個別表示頁だからです。
出力されたスクリプトはまず表示中の個別頁の location.hash を調べます。
これが存在するのはコメントリストや自(他)記事内のリンクで呼ばれた場合でありますから(投稿・編集後に表示される頁には "#〜" は付きません)スクリプトは何もしません。
「素」で表示された個別頁であった場合、スクリプトは次に履歴を調べます。
前頁が同一記事の個別表示頁であった場合は 「コメントが投稿された」 と解釈し、最新コメントの番号を rcomment(コメントリスト)から取得して”頭出し”を行います。
前頁が「コメント編集」頁であった場合はその eno から編集されたコメントの番号を取得し当該コメントの頭出しを行う、という仕組みですが如何でしょうか。 (勿論スクリプト無効環境では頁頂部が表示されます)
コメントを投稿・編集したら直に確認したい というのは誰しもの願いでありましょう。
コメント投稿・編集後の表示頁にhashを付加する事自体はシステム側の機能としても可能だと思われますが、テンプレートソース上でのコメントのラベルには定まった規格が存在せず各テンプレート毎にまちまちでありますから、今後とも実装される可能性は高くないと思われます。
「そうする方法が無い訳ではない」 という事で何かの参考になれば・・・
|
★
ナミ
ナミ
Edit 05/02 15:30 |
お借り致します はじめまして! |
|
★
daniel
daniel
Edit 05/02 19:44 |
ナミさん ようこそ はじめまして。 |
| . |