FCafe  投稿・編集コメント表示 2

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 前記事の 「投稿(編集)したコメント直行表示」 、割と簡潔なソースではあるのですが、想定がかなりアバウトでして 対処しきれない(スクリプトエラーになる)ケースも在り得る事に気付きました。 例えば以下のような場合であります。

  1. コメント投稿時 『確認画面』 を使用している場合
  2. コメント編集頁で 『削除』 をクリックされた場合

1はスクリプトが投稿を感知しませんし、2では削除されたIDを表示しようとしてエラーになります。   上記の他にも例えば、「個別記事参照中にサイドバーのrecentから同記事を選択」等も考えられます( 殆ど”可能性”としてのレベルの話ですが)。  しかし、通常よく遭遇するであろう上記2例を含め、回避可能なものならばエラーなどは無しで済ませたいものであるのは確かです。
・・・というわけで「対策」したものを作ってみました。  ( C-Rollとして共有プラグインに登録済 )


【 設定法 】   前記事の方法と同様各コメント(のタイトル等)に IDを設定します
(公式は全て、共有テンプレートも殆どそうなっています)
123番目のコメントのIDが ”comment123” である場合 (公式は全てこの形です)
テンプレート(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 { 
   var x=<%pno>+".html";
   var y="no="+<%pno>;
   var z="index.php?";
   if (r.indexOf(x)>0 || r.indexOf(y)>0 || r.indexOf(z)>0){
    N=<!--rcomment-->"<%rcomment_no>";n=<!--/rcomment-->"";
  } }
  if(N!=""){N="comment"+N; if(document.getElementById(N)){
   document.getElementById(N).scrollIntoView();
 } } } cRoll();
}
//--></script><!--/permanent_area-->

【 解 説 】   「頭出し」を行う前に 表示しようとするコメントIDが存在するか確認するように前記事のスクリプトを改めました( 頁内にIDが存在しなかった場合は何もしません )。  これにより エラーの発現はかなり抑制される事でしょう。
また、「確認ページ」 経由でコメントが投稿された場合にも反応するようにしました。
各コメントのIDは id="commentXXX" と表記されるのが殆どのようですので提示ソースもそのように改めました。  ”悪しき例外”は私だったようであります  orz

Comment

Chako Chako Edit
05/04 11:50

強力新人登場♪ 実はずっと前から「頭出し」できればいいのにと思っていたのですが、できましたねー!
さっそくプラグインの一番最後に追加しました。
このプラグインには「StyleKeeper」「C-PREVIEW」「NewMark」の3点セットとsugさんの「HTML+CSS2同盟」が入っていたのですが、また強力な新人登場です♪
動作もバッチリでした。ありがとうございました。

daniel daniel Edit
05/04 12:25

あ、Chakoさん。 おはようございます。
御利用と御検証 感謝です。  動きましたか。 (よかった~)
・・最近 Forum依存度が上がってるんですが中々良ネタが少なく。
その分 getしたネタは執拗に使い回す傾向があるような・・
( Chako さんも何かネタ見つけたら教えて下さ~い )

Chako Chako Edit
05/04 12:59

バッチリと思ったのですが、Safariではダメでした。検証不足ですみません。
Firefoxではバッチリなのですが…

>何かネタ見つけたら教えて下さ~い
このネタ、早くお願いしてみればよかったですね。
「できないとあきらめないでFCafeへ!」と、標語ができました(笑)

daniel daniel Edit
05/04 13:13

ホントに Safari は鬼門ですね~
( まあ動かなくていつも通り、て類のものですが )
・・・その標語、イイですね。 
「ネバーギブアップ!」  (ハムを持ちながら)

sheng / 耳呈 sheng / 耳呈 Edit
05/04 20:56

おそらくスクリプトの関係じゃない気がします。
safariだと、たとえば「続きを読む」の ~#more すらうまく頭出しできません。
ページ内で移動する際のアンカーとしては完全に効きますが、
「ページ遷移+ #を頭出し」だと機能しないことがあります。

ページが軽かったり、一度読み込んでいるのでキャッシュされてたりして、読み込みが速い時は #~ の部分まで飛ばしてくれますが、
ちょっと読み込みに時間がかかるとダメみたいです。

daniel daniel Edit
05/04 21:31

耳呈さんこんばんは。   そういう事があるんですか。
ID部を頭出しするのはphotoscopeと同じ方法で、
スクリプトは頁内容がロードされてから作動するんですが・・
全くブラウザ毎の違いはやっかいですね

Showcian Showcian Edit
09/06 17:33

まるっきり素人の者です。
FC2のフォーラムに相談したところ、こちらを教えてもらいました。
コメント欄のトップにピッと移動するようになったので快適です!
ありがとうございました。


.  
HN Title URL PW secret

TrackBack http://pcafe.blog3.fc2.com/tb.php/458-1fe262bf

Shown after Admisson
.

≫ Have you seen it? 投稿(編集)コメント頭出し ≪

2007 / 05 / 03  Thu
Comment/TB   
Comment 7 / TB 0 / Edit
Designed by Daniel Corporation . all rights renounced
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。