2006年7月14日(金)

« 【ココログ】「みんなで解決!広場」検索専用ページ開設 | トップページ | ココログメンテ後の調子……うーん、微妙 »

【ココログ】アーカイブページに目次とページングを付加するJavaScript

トップページ/バックナンバー/カテゴリーの各ページを表示する際に、ページ内目次とn記事ずつのページング機能を付加するスクリプトを作成してみました。

サイドバーの月別/カテゴリー別バックナンバーをプルダウンメニュー化する機能もついてます

サイドバー上のメモタイプのマイリスト等、HTMLの記述が可能なところに以下のソースを貼り付けます。

あまりしっかりとテストをしていないので、人柱希望です(^^;
【2006.07.16】機能追加に伴い設置用ソースを修正しました
【2006.07.16】機能追加/修正に伴い設置用ソースを修正しました
【2006.07.29】機能追加に伴い設置用ソースを修正しました
【2006.08.14】機能追加に伴い設置用ソースを修正しました

<script type="text/javascript" charset="utf-8" src="http://furyu.tea-nifty.com/script/cocoPView.js"></script>

<style type="text/css">
<!--
    #archive-datebased select, #archive-category select {
        width: 100%;
    }
    .ccpv_nav_form {
        margin-left: 16px;
    }
    .ccpv_nav, .ccpv_nav_disable, .ccpv_nav_all, .ccpv_nav_page {
        font-size: 10px; line-height: 120% ;
        margin: 0px; padding: 2px 0px 2px 0px;
        color: brown;
        border: outset 1px silver;
        text-align:center;
    }
    .ccpv_nav, .ccpv_nav_all, .ccpv_nav_page {
        background-color: lightyellow;
    }
    .ccpv_nav_disable {
        background-color: whitesmoke;
    }
    .ccpv_nav_all, .ccpv_nav_page {
        margin-right: 12px;
    }
    .ccpv_counter {
        font-size: 12px;
        margin-left: 12px;
        color: darkgreen;
    }
    .ccpv_list {
        list-style-type: none;
        margin-left: 16px;
        padding-left: 0px;
        text-align: left;
    }
    .ccpv_list li {
        margin-left: 0px;
        padding-left: 0px;
    }
    .ccpv_number {
        display:block; width:2em; text-align:right; font-weight: bold;
    }
    .ccpv_table tbody {
        vertical-align: top;
        line-height: 110%;
        text-align: left;
        word-break: normal ;
    }
    .ccpv_alink {
        font-size:10px;
    }
    .ccpv_plink {
        word-break: break-all;
    }
-->
</style>

<script type="text/javascript">
<!--
//【サイドバー用設定】
cocoPView.modifySidebar = true;         //  サイドバーのバックナンバー/カテゴリーを置換する
cocoPView.usePullDownMenu = true ;      //  バックナンバー/カテゴリーをプルダウンメニューにする
cocoPView.getArchivesOnload = true ;    //  archives.htmlの取得→サイドバーのバックナンバー/カテゴリー置換を onload 時に行う
    //  ※false時は即時実施:スクリプトを読み込む前にバックナンバー/カテゴリーが表示されていること
cocoPView.loadByAjax = true ;           //  バックナンバー/カテゴリーの読込にAjax(XMLHttpRequest)を使用
cocoPView.onloadFunction = "" ;         //  Ajaxにてページ読込後に呼出す関数を『"関数名()"』で指定
cocoPView.monthlyPullDownSelect = '年月を選択' ;        // 月別プルダウン用初期表示
cocoPView.categoryPullDownSelect = 'カテゴリーを選択' ; // カテゴリープルダウン用初期表示

//【アーカイブページ用設定】
cocoPView.archivePaging = true ;        //  アーカイブをページング表示する
cocoPView.topPagePaging = true ;        //  トップページもページング表示する
cocoPView.useIndex = true ;             //  ページ内目次表示
cocoPView.hideEntryMore = true ;        //  本文(続き)部分を隠す(『続きを読む』リンク表示)
cocoPView.showMax = 5 ;                 //  ページ内記事表示数
cocoPView.showAllFirst = false ;        //  最初に全件表示する
cocoPView.pageIndexTitle = 'ページ内目次' ; // ページ内目次見出し
cocoPView.topPageSubTitle = '' ;        // トップページ用サブタイトル
cocoPView.addSubTitleToH2 = true ;      // サブタイトルをH2(通常は年月日が表示されるところ)に付ける
cocoPView.addSubTitleToH3 = false ;     // サブタイトルをH3(通常は記事タイトルが表示されるところ)に付ける
cocoPView.switchLinkType = true ;      // ページ内移動と個別ページへのリンクが付く箇所を入れ換える
    // false:日付→ページ内移動、記事タイトル→個別ページへのリンク
    // true:日付→個別ページへのリンク、記事タイトル→ページ内移動

//【個別記事ページ用設定】
//=== トラックバック一覧
cocoPView.tbPaging = true ;             //  トラックバックをページング表示する
cocoPView.showAllFirstTb = false ;      //  最初に全件表示する(トラックバック)
cocoPView.showMaxTb = 3 ;               //  ページ内トラックバック表示数
cocoPView.tbReverse = false ;           //  元のトラックバックの並び順(false:昇順 true:降順)
cocoPView.showNewTbFirst = true ;       //  最初に最近のトラックバックを表示する(false:一番古いものを表示)(※tbReverse=falseの場合のみ有効)
cocoPView.pagingTypeTb = 1 ;            //  0:最初のページの件数固定 1:最新ページの件数固定(※tbReverse=falseの場合のみ有効)
//=== コメント一覧
cocoPView.commentPaging = true ;        //  コメントをページング表示する
cocoPView.showAllFirstCmt = false ;     //  最初に全件表示する(コメント)
cocoPView.showMaxCmt = 5 ;              //  ページ内コメント表示数
cocoPView.commentReverse = false ;      //  元のコメントの並び順(false:昇順 true:降順)
cocoPView.showNewCmtFirst = true ;      //  最初に最近のコメントを表示する(false:一番古いものを表示)(※commentReverse=falseの場合のみ有効)
cocoPView.pagingTypeCmt = 1 ;           //  0:最初のページの件数固定 1:最新ページの件数固定(※commentReverse=falseの場合のみ有効)

cocoPView.init_onload() ;
//-->
</script>

【注意点】(2006.07.16, 8/12加筆修正)
左サイドバーに設置する場合、なるべく下の方のマイリストに貼付けるようにしてください。
右サイドバーが有る場合には、そちらに設置することをお薦めします。
こちらは逆に、なるべく上の方のマイリストに貼付けて、
cocoPView.init_onload() ;
cocoPView.getArchivesRequest() ;
cocoPView.makePages() ;
に変更して下さい。その方がページ内目次の表示が早まります(右サイドバーに色々貼り付けてある場合には特に有効です)。
暴想(なおゆき)さんの『ココログをAjax化するJavaScript(再掲)』(月別/カテゴリ別バックナンバーのプルダウンも含む)とは干渉しますので(後勝ち)併用は避けて下さい

なお、ページ(テンプレート)のタグ構造をある程度決め打ちしてしまっているため、対応可能なココログは以前のページ内目次よりも限定されてしまいます。
ブックマークレット:アーカイブページに目次とページングを付加
をご自分のページで試してみて、ページ内目次が出て来ない場合は未対応だと思って下さい。

ブックマークレットの使い方等は→『【Web】ブックマークレットのブラウザ毎の登録方法

技術的には、なおゆきさんの『ココログをAjax化するJavaScript(再掲)』と、以前作成した『【ココログ】ページ内記事の目次を作るJavaScript(謎のおまけ付き)』を参考にしています。

※『続き』部分に更新履歴を記載しています。


【2007.08.13】

  • ページ内移動と個別ページへのリンクの設定を入れ換えるオプション(cocoPView.switchLinkType)追加
  • cocoPView.getArchivesRequest()を直接コールしたときに、カテゴリー/バックナンバーが置換されないことがある(cocoPView.getArchivesOnload及びcocoPView.onCompleteSidebarオプションが効かなくなる)不具合修正
  • 目次のタイトル(h2)とアーカイブページのタイトル(h2 class="content-header")とが被ってしまうので、後者を隠すように修正

【2006.08.14】

  • アーカイブをページングする/しないを選択するオプション(cocoPView.archivePaging)追加

【2006.07.29】

  • 表示カスタマイズ用オプション追加(【サイドバー用設定】のmonthlyPullDownSelect, categoryPullDownSelect, 【アーカイブページ用設定】のpageIndexTitle, topPageSubTitle, addSubTitleToH2, addSubTitleToH3)。
  • ページ内のアンカーを指定したリンクから来た場合には、全件表示にするように修正。

【2006.07.16】

  • コメント/トラックバックのページングの方法修正。
    ナビ釦の左が新・右が旧だったのを、左が旧・右が新に変更(元の並び順が『古いものが上』の場合)。
  • コメント/トラックバックのカウント表示追加。
  • 元となる並び順を指定するオプションの変更
    旧:cocoPView.tbAscend → 新:cocoPView.tbReverse
    旧:cocoPView.commentAscend → 新:cocoPView.commentReverse
    新旧で意味が反対(true/falseが逆転)なので注意。

【2006.07.16】

  • 個別記事ページにて、コメント/トラックバックのページングを行う機能追加。

【2006.07.15】

  • Ajaxにアーカイブ読込時に、ページ更新後、任意の関数をコールする機能追加。

【2006.07.14】

  • カテゴリーディレクトリの判別方法修正。

この記事をニフティクリップβに追加 この記事をはてなブックマークに追加 2006/07/14(金) 01:31 | | 記事の編集(管理者用)

風柳へひとこと(web拍手) 

ウェブログ・ココログ関連」カテゴリの記事

覚書」カテゴリの記事

トラックバック

この記事のトラックバックURL:

記事との関連性が薄いものやSPAM等、管理人が不適切と見なしたトラックバックについては予告無く削除する場合が有ります。悪しからずご了承下さい。

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/161784/10928003

この記事へのトラックバック一覧です: 【ココログ】アーカイブページに目次とページングを付加するJavaScript:

» 風柳さんの新しい目次のスクリプト トラックバック Bugsなうさぎの憂鬱
「アーカイブページに目次とページングを付加するJavaScript」という、とても便利でココログの足りない点を補ってくれる絶妙なスクリプトが風柳さんの風柳亭 - 別館:書庫のある庵 にアップしされています。ココログで「ページング機能」が使えず、ずっと不満でしたが、これで実現できます。かなり読みやすくなります! ところが 本当に残念なことに、このブログではちょっと問題があって今は使えていません。わー... 続きを読む

受信: 2006/07/14 17:33:21

» 目次をつけてみました。 トラックバック *まっきーのブログ*
記事フッターに「もどる」リンクをつけてみました。でも書いたけどバックナンバーとか 続きを読む

受信: 2007/07/14 13:47:21

» 目次とページングを付加 トラックバック ★節約ごはん★
カテゴリーを、どうしてもプルダウン化したく無かったので、今までどうやってもうまく 続きを読む

受信: 2007/09/06 1:27:49

» カテゴリー・月別表示の件数指定 トラックバック sHiro10@blog
「カテゴリー・月別表示の件数指定はココログでは以前から指定できませ 続きを読む

受信: 2007/10/08 23:20:24

コメント

風柳さん今日は、バッグスです。
またまたかゆいところに手の届くようなスクリプト、素晴らしいです。今回のはスタイルをいじらなくてもちゃんと本文と同じスタイルで表示してくれて見た目も違和感ありません。
さて、人柱?に勝手に立候補で動作報告をさせていただきます。残念なことに私の場合ですが、一部のカテゴリーに反映されないようです。実は私のカテゴリー欄は本当のカテゴリー欄ではなくて、必要なカテゴリーだけをリンクで表示させています。いろいろ整理を考えてカテゴリー分けを試行錯誤中なので、全部見えるとかっこ悪い。ですから、カテゴリー欄の名前と、本当のカテゴリー名はちょっと違うのですが、どうも、カテゴリー名に_(アンダーバー)やスペースが入っていると表示されないような気がします。たまたまかもしれません。
例えば 「Google Earth」とか「PC_1」といったカテゴリーが表示されません。「ウェブログ・ココログ関連」などのように中点の入ったものは大丈夫です。実は、「PC_1」と「PC関連」は中身が同じなのですが、バックナンバーのリンクから本当のカテゴリーを出して両方を試して見ますと、「PC_1」がNGで「PC関連」はOKです。
とりあえず、今設置しておりますので、もし見ていただけるならカテゴリー欄から見るより「バックナンバー」の文字のところのリンクから見ていただけますとわかりやすいかと思います。。
個別の事情に全部対応するのは大変かと思いますので、順にこちらがカテゴリー名の変更をすることもありだと思っております。スクリプト作成ありがとうございます。

投稿 バッグス | 2006/07/14 12:51:36


バッグスです。
すみません。やっぱりカテゴリーを直接サイドバーに出さずにリンクにしているのがいけないようです。直接もともとのココログの「カテゴリー表示」をだせば、ちゃんと動いているようですので、私の側の問題だということがわかりました。
カテゴリーを整理してそのままサイドに出せるようにいたします。
本当に素敵なスクリプトの提供、ありがとうございます。

投稿 バッグス | 2006/07/14 15:33:57


バッグスさん、動作報告有難うございます。

このスクリプトでは、バックナンバー/カテゴリーのページであるかどうかをリンクの名前ではなく、URLを見て以下のようにして判別しています。

[バックナンバー]
→ …/(年)/(月)/index.html
[カテゴリー]
→ …/cat(任意の半角英数字及び下線)/index.html

従って、ご自分でカテゴリーページを作成されたような場合、上記の法則に基づいたパス名にすれば、目次が表示されるようになります。

例)
×http://bugsbunny.cocolog-nifty.com/blog/google_earth/index.html
http://bugsbunny.cocolog-nifty.com/blog/cat_google_earth/index.html

また、標準のカテゴリーと違い、ご自分で作られたリンクリストの場合には、Ajax化も自動では行われません。
その場合、リンクを以下のように手動で変更することによって、Ajax化対応も可能です。
<a title="" href="javascript:cocoPView.showArchivesRequest('/blog/cat_google_earth/index.html');">グーグル・アース<br><B>プレースマーク集</B></a>

投稿 風柳>バッグスさん | 2006/07/14 18:18:08


さっそく対応策を考えていただいて本当にありがとうございました。
実は、結論から申しますと、うまく行きませんでした。どうも、ベーシックのカテゴリーの名前付けは、全角文字が入っているときは
…/cat(任意の半角英数字及び下線)/index.html
になって、これらはリンクからでも目次がうまく表示されるのですが、例えばGoogle Earthとか、PC_1などの半角英数で付けた場合、空白はアンダーバーに置き換えられてそのままのフォルダ名でフォルダが作られて(Google_Earth、PC_1等)頭にcatがつかない仕様のようです。そしてcatのつかないような命名をしたカテゴリーが全部うまく動かないようです。

教えていただいた
http://bugsbunny.cocolog-nifty.com/blog/cat_google_earth/index.html
としますと、そんなわけでページがNot Foundとなってしまい、スクリプトも当然働きません。

また、
<a title="" href="javascript:cocoPView.showArchivesRequest('/blog/google_earth/index.html');">グーグル・アース<br><B>プレースマーク集</B></a>

の形で(catなしのURLで。有りの場合はエラーになります)リストを作った場合はスクリプトの後に持ってきたくると動きますが、上のほうだとどうも動かないようです。当然ながら手動で書き込んだ場合はJavaを切った環境だとリンクが働かないので悩ましいところです。
しかし、きちんとサイドバーに標準のカテゴリーを持ってきた場合には、cat無しの半角英数のみのURLのカテゴリーも問題が出ないのでとても不思議です。スクリプトって奥が深いですね。

ということで現時点では来てくださる方の使い勝手も考えると、風柳さんの過去の目次をページ内に無理やり設置させていただいて(これもなかなか素晴らしいですね)、カテゴリーを少しずつ整理してサイドバーに出せるようがんばる!という方向で行きたいと思います。普通にカテゴリーを出していさえすれば素晴らしいスクリプトです。

すぐコメントくださってとても感謝しております。いろいろ試していてお返事が遅れましたことお詫びいたします。

投稿 バッグス | 2006/07/14 21:22:10


バッグスさん、詳細なレポート有難うございます。

そうか、半角英数字と下線のみのカテゴリー名だとディレクトリ名がcat*以外になってしまうのですね。見落としていました。

そんなわけで、また少しスクリプトの方を改修してみましたので、もしよろしければお試し下さい。
バッグスさんのマイリスト『カテゴリー』のままでも、対応してみたつもりです。Ajax用にリンクを書き換える処理も多分動くはず。
(プルダウン化だけは見送っています。これも時間があれば対応したいですが)

投稿 風柳>バッグスさん | 2006/07/14 22:53:23


ありがとうございます!
しっかり動きました。Ajax用には書き換えていないのですが、TOPへのリンクとの相性がAjaxを切ったほうが少しばかり良さそうなので、もうこれで私としては充分に素晴らしいです。
たぶんこれで対応できる方も一段と増えるのではないでしょうか。カテゴリーをリンク化してるなんてあまりいないかしら。もしそうだとしたら、実に個別な対応していただいてますます感謝です。うれしいです。

投稿 バッグス | 2006/07/14 23:38:14


す、すみません。トラックバックが記入欄を消しても消しても、保存ボタンを押すと復活してくるらしく、トラックバックが送られてしまいました。もしかして、後から記事を編集するたびに送られたかもです。削除のお手間を取らせて申し訳ないです。メンテはまだバグがありそうですね・・・

投稿 バッグス | 2006/07/14 23:53:52


Ajax化してしまうと、アドレス欄のURLがおかしなことになる、という問題もありますので、(ここのように(^^;)特に重いページでもない限りは切っておいた方がよいかも知れませんね。

トラックバックの重複はココログの問題ですから、気にしなくてよいですよ(^^)。

| メンテはまだバグがありそうですね・・・
なぜか、この3つ上の私のコメントがサイドバーに出なかったり……。
(すべて反映とか、コメント保存し直しとか、やってみたんですけど)

投稿 風柳 | 2006/07/15 1:11:59


何度もありがとうございます。
あちらでお返事を書かせていただきました。

ココログのバグ、結構コメントやトラックバックのところにもありそうですね。いろいろやっていたら、私もとうとう何回か問題ありといわれて変更内容が消えてしまいました。

投稿 バッグス | 2006/07/15 2:30:14


風柳さん おっはようございます(≧∇≦)/
!!!!こげな便利なもん 作ってはったんを見逃しておりましたm( _ _ )m
ちょうど「あの」時期と重なっていたんで見逃していたようです。すいませんです。「あの」間のエントリはとりあえずRSSリーダーで拾い読みしただけなので・・・明日にでも全部チェックしないと(^-^;A
良く考えたらここのTOPページのレイアウトが変わっていたんで???とは思っていたんですが・・・(これは便利やなぁ~とは思っていたのに何故チェックせんかったんやろ???)
早速チェックとしてブックマークレットを自分ちで試すとOKサインが出たので設置しました。したら・・
見事に作動しません~~~
???と思いもういっぺんブックマークレットチェック~
作動する!
???こちらに戻り、注意書きを良く見ると・・・どうやら単体で動かしていたカテゴリ・バックナンバーのプルダウン化スクリプトが邪魔してる様子。
外してみると・・・ばっちり作動しました!
素晴らしい~こりゃぁ~便利ですね。カレンダーのヤツは・・・自分で毎月作成せんといかんのが・・・めんどくさがりの僕にはできそもないんで諦めましたが、これは、すばらすぅいぃ~~~!!しっかり利用させていただきます。こんな便利なモンを作成・公開していただける風柳さんに最敬礼!!
よっ! 〆(⌒ー⌒)

ところで2つほど質問が・・・・
設置したらウチのBlogでは「バックナンバー」の文字列がリンク化して別ページ(カテゴリ&バックナンバーリストページ?)に跳ぶようになったんですが、「カテゴリ」の文字列がリンク化されないいんですが仕様ですか?なるもんなら跳ぶページは同じでエエんで「カテゴリ」文字列もリンク化できればいいんですけど。

もう1つの質問っちゅうか、お願いなんですけど・・・・
このスクリプト、お持ち帰りは許可いただけますか?

以上、無理な質問・お願いなんですがよろしくおたの申し上げまする
m( _ _ )m

投稿 hibiki | 2006/07/24 6:45:55


hibiki さん、どうもです。

目次&ページングスクリプト、ひとまずは設置できたようで。
表示されるのにちょっと時間がかかっちゃいますね。
今現在は左サイドバーに設置されていますが、右の検索スクリプトのところに相乗りさせて、上記【注意点】(2006.07.16加筆修正)を参考に書換えてもらえば、多少は早くなると思いますよ。

| カレンダーのヤツは・・・自分で毎月作成せんといかんのが
そうですねぇ。私もちょっとこれが面倒で(をい。
#大した作業じゃないのに、何故だろう(^^;。
やっぱりカレンダーについては標準機能にして欲しいなぁ>ココログ。

| 「バックナンバー」の文字列がリンク化して
ん?これはもともとだと思いますよ(スクリプトを無効にしてもリンク化されているかと……ココログの標準機能)。

まぁ、このサイトだとサイドバーの他のタイトル部も勝手にリンク化してたりしますけれど(笑)。
これはうちのサイト専用のカスタマイズなんでそのままでは他のサイトに導入できませんが、そのうち単体の機能として提供するかも知れません(あくまで気が向けば(^^;)。

| このスクリプト、お持ち帰りは許可いただけますか?

ご自由にどうぞ。
ただし、裏でこっそりとバージョンアップしていたりもするので、その点についてはご了解下さい(^^;。
#大きく影響する変更は記事化するつもりですけれど。

投稿 風柳>hibiki |さん | 2006/07/24 7:33:35


風柳さん こんにちわ!

>今現在は左サイドバーに
早速ご指摘どうり変更しました。「若干」なんて書いてあるからそれほど気にしなかったんですけど・・・「相当」早くなってますよ~表示。だからこっちに決めました。

カレンダーはやっぱライブドアみたくして欲しいです、私も。TypePadでは問題あるんすかね?・・・・って最近、MovabieTypeにちょっと興味が出てきたところ~でもまだ早いっす~

「バックナンバー」のリンクの件、了解です。お持ち帰りは・・・・やっぱ自動バージョンアップがエエんで今回はやめときます~(≧∇≦)/

いつか・・・いつか自分でも何か人の役に立つプログラム作ってみたいです~

投稿 hibiki | 2006/07/24 17:58:29


hibikiさん、どうもです。

| 「相当」早くなってますよ~
日本語って難しいなぁ(笑)。
右サイドバーに比較的重いパーツを貼り付けている場合には、結構有効ですね。

ライブドアのカレンダーってどんなのでしたっけ?(^^;
TypePadは(Movable Typeもか)どうもタグといいAPIといい、ぱっと見『痒いところが痒いまま』という仕様が多いイメージがあります。
#私も全然詳しくないので、エキスパートな方が読んだら苦笑するかもですけど

ただまぁ、ココログでは無理ですけれど、プラグインが使えるのなら、自分の好きなように(タグの拡張なんかも含んだ)機能的なカスタマイズが柔軟に行えそうなので、面白いかも知れません。
#今は手を出す余裕はないですけれど……

もし手を出されるのでしたら、いろいろ調べた内容をまた教えて下さい。

投稿 風柳>hibiki さん | 2006/07/25 22:56:04


こんばんわ。はじめまして。
この記事にあるスクリプトを導入してみた者です。
素晴しいものをありがとうございます。
現在、全く問題なく作動しております。

1つ質問ですが(スクリプトという言葉自体も詳しくないレベルです)
最初の記述で
**tp://furyu.tea-nifty.com/script/cocoPView.js
と、貴サイトのスクリプト本体(というのでしょうか)を読みに行っている
様なのですが
私はこのスクリプトをDLし自サイトにアップロードし、
そこに読みに行かせております。
又、タイトル等に若干変更を加えております。

この利用方法は間違って(利用の約束に反している)ますでしょうか?
もし風柳様にご迷惑をかける様でしたらご指摘下さい。
宜しくお願い致します。


投稿 s_boldor | 2006/07/27 3:18:30


s_boldor さん、はじめまして。

スクリプトのダウンロード&ご自分のサイトへのアップロードや、改変に関しては、特に制限を設けておりませんので、ご自由にどうぞ。

ただ、もしかすると裏でちょっとなおしたりする(いつのまにかマイナーバージョンアップしている)かも知れませんので、その点はご了承下さい。
#大きな不具合やバージョンアップがあった場合には記事としてお知らせするつもりですが

サイトを拝見しましたが、バックナンバー等を読み込んだときでもタイトルが“【目次】最近の記事”のままなので、ちょっと違和感がありますかね。
↓に、s_boldor さんが設置されているものに若干修正を加えたバージョン(読み込んだページに応じてタイトルを変える)を置いておきますので、よろしければ置き換えてお試し下さい。
http://furyu.tea-nifty.com/script/custom/cocoPView.js
※修正箇所は1079~1091行目あたり。

あと、ページ内の移動リンクの title が "事目次を移動"となっていますが、これはこういうものですか?(事目次というのがわからなかったので)

投稿 風柳>s_boldor さん | 2006/07/27 8:37:17


風柳さん こんにちわ。
利用方法の件、安心しました。ありがとうございます。
又、早速対応のスクリプトまでご用意頂き嬉しく思います。

*早速置き換えてみました⇒カテゴリ名が出るのでよりわかり易いです。

「事目次を移動」
すいません。これは全く意味不明でした。
多分タイトルをいじっている際に誤った記述にしてしまったものだと
思います。ご指摘頂きまして、早速修正しました。

*「ページ内移動」 の部分でした。

ver.upの件などは承知しました。
時々覗かせて頂きたいと思います。
本当にありがとうございました!

投稿 s_boldor | 2006/07/27 17:08:26


風柳様

初めまして、「アーカイブページに目次とページングを付加するJavaScript」を導入させていただきました。

動作も問題なく作動し、おかげ様でサイドバーがだいぶスッキリしています。

ただ1つだけ許可を頂きたいのですが、トップページはノーマル風味が希望でしたので、【アーカイブページ用設定】の項目で【//  トップページもページング表示する】の個所を"false"に設定しました。

当方の都合による改変後の報告というのも失礼かと思いますが、問題等ありましたらご指摘ください…。

投稿 ハコ | 2006/11/06 20:33:10


ハコさん、はじめまして。
ご報告ありがとうございます。

設置・改変等については、特に制限を設けておりませんので、ご自由にどうぞ。
特に、設置用スクリプト内のオプションは、設置される方のお好みで変えやすいようにと表に出しているものですので、これを変更されることは全然問題有りません。
ただ、全ての組合せをチェックするのは困難なため、オプションの組合せによっては不具合が発生する場合もあるかと思いますのでご了承の程を。
#なお、不具合を見つけたときにはご一報いただけると幸いです。

投稿 風柳>ハコ さん | 2006/11/06 22:08:05


風柳さん、初めまして。
takoさんのブログの方でわざわざアドバイスしていただいてありがとうございました。
先程無事設置することができました。
できないことができるようになってスッキリしました(*'-')

投稿 casbal | 2006/11/22 11:00:10


こんにちは。
はじめまして。
まっきーです。

とても便利なスクリプトをありがとうございます。
さっそくお借りしました。
(トラックバックもさせていただきました)

投稿 まっきー | 2007/07/14 14:27:09


まっきーさん、はじめまして。
ご報告&トラックバックどうもです。
お役に立てたようでしたら幸いです(^^)。

投稿 風柳>まっきー さん | 2007/07/14 20:25:07


初めまして。
長い間、自分用にページの目次を付けたいと、思っていました。
とても便利な機能で、うれしいです。
ありがとうございます。

実は、半月以上前に設置させて頂いたのでが、IE6はNGで悩んでおりました。
一応、左サイドの最下位置で、全ての機能が正常になりましたので、
お礼に、参上いたしました。
また、FirefoxでOKになった時と、IE6でNGになった時の対処方法の記事を、
書きまして、こちらの記事にリンクさせて頂きました。

それから、facet-freeさんのところでのアドバイス、ありがとうございました。
結果は、出来ませんでした。(涙)

投稿 OBOCCO | 2007/08/03 1:26:42


お返事が遅くなりました。
ご報告ありがとうございます。記事の方も参考にさせていただきます。

| 結果は、出来ませんでした。(涙)

ありゃ、そうでしたか?

当方では、メモタイプのマイリストに

<script type="text/javascript">
(function(){
var e=(function(obj){while(obj){if(obj.nodeName.toLowerCase()=="script")break;obj=obj.lastChild}return obj})(document);
while(e){if(e.className=='module-typelist module list'){e.style.display='none';return;}e=e.parentNode;}
})();
</script>

を貼り付けてやれば、消えましたけれど……。

投稿 風柳>OBOCCO さん | 2007/08/05 2:26:01


>当方では、メモタイプのマイリストに

>を貼り付けてやれば、消えましたけれど……。
大変申し訳有りませんでした。m(__)m
アドバイス頂きました箇所のみ、書き換えば良いと思い込み、
出来ませんでしたと報告してしまいました。
風柳さんが書かれた、うえのコメントのスクリプトを見て、
間違った箇所が判明しました。
お手数をおかけしました。m(__)m

風柳さんのアドバイスのおかげで、
複数設定時の番号管理をしなくて済むようになり、
大助かりです。
ありがとうございました。m(__)m

また、風柳さんの他の便利な機能を、利用させて頂きたいと、
思っておりますので、よろしく、お願いいたします。m(__)m

投稿 OBOCCO | 2007/08/06 22:23:30


いまさらですが、採用させていただきました。すばらしいスクリプトをどうもです(^^)
ところで、2つ3つ。

まず、コードを右サイドに置く方法を採用したのですが、アーカイブ関連のリストより上に置いちゃうと cocoPView.getArchivesOnload=true; が効かないですね。
右サイドに置く場合はアーカイブ関連リストより下に置くようにしてもらうようにするか、上記変数がtrueの場合は優先的に効くようにするか。。。

それから、目次なんですが、できれば日付クリックで個別ページ、タイトルクリックでページ内移動、と、今と反対の挙動の方が直感的かなと思ったんですけど、どうでしょう?

あと、...なんだっけ、忘れましたw
思い出したらまた。(^^;

投稿 facet | 2007/08/12 7:05:55


| アーカイブ関連のリストより上に置いちゃうと cocoPView.getArchivesOnload=true; が効かないですね。

あ、ばれちゃいましたか(をいヾ(^^;))。
実は、つい先日私もこのサイト上のスクリプトの置き場所を変えたときに気付いたのですが……そのうちなおそうと思ってそのまま放置してました。
とりあえず、cocoPView.getArchivesRequest() の内部で、ページが読み終わっているかどうかチェックすることで対応してみました。
#id='footer'を目印にしているので、厳密にはonloadのタイミングじゃないですが、ご勘弁(^^;)

| 日付クリックで個別ページ、タイトルクリックでページ内移動

確かにそうかもですね(日付クリックでページ内移動することに気付かないケースもあったことですし……)。
既に設置している方の操作性が変わるのも何ですので、オプションで変えられるようにしてみました。
cocoPView.switchLinkType = true;
でお試しを。

投稿 風柳>facet さん | 2007/08/13 15:03:59


こんにちは。

「ページ内移動と個別ページへのリンクの設定を入れ換えるオプション」は、
記事タイトルを押す習性の有る私には、
うれしいオプションです。(^^♪

ありがとうございました。<(_ _)>

投稿 OBOCCO | 2007/08/13 15:34:02


初めまして、★節約ごはん★といいます。よろしくお願いします。
先程、私のブログに、このスクリプトを付けさせてもらってトラックバックさせていただいたのですが、その後で、戻る機能がへんなことに気が付きました。もし私のブログを覗いていただいたときに試行錯誤中だと申し訳無いのでコメントしています。何分、まだよく解らないことが多くて、ごめんなさい。また少し頑張ってみます。

投稿 ★節約ごはん★ | 2007/09/05 15:59:56


ブログの方にコメントさせていただきましたので、ご覧ください。

ちなみに、トラックバックは来ていないようです……またココログの問題かなぁ……?!

投稿 風柳>★節約ごはん★ さん | 2007/09/05 21:05:17


2回目は、無事にトラックバックできたようでよかったです。すみませんでした。投稿するときに、トラックバックのアドレスがフォームに残っているときには、トラックバックできてないという事なのですね?きっと。

私のブログにコメントいただいたので、ひとつの記事にたくさんコメントが付きました。こんな事は初めてなので、そこで初めてコメントのフォーマットがちょっとへんだなと気が付きました。それで、線を入れるなどして少し見栄えのいいように直したのですが、風柳さんのブログのように、トラックバックとコメントの最後のところに「戻る機能」が付けたくなって、いろいろ調べました。でも、いくら探しても、風柳さんのところ意外に見つかりませんでした。ソースを見せてもらったりしていろいろやったのですが、何の変化も起きません。またすぐに教えてもらうのも申し訳ないので、ヒントになるような記事などがありましたら教えてもらえたら嬉しいんですが。急がないので、時間のあるときによろしくお願いします。

投稿 ★節約ごはん★ | 2007/09/07 13:37:47


もうひとつ質問をさせてください。お返事はいつでもいいので、ほんとにすみません。
ツールバーの「更新」や「戻る」の機能がバラバラになって、違うページに行ってしまってるようなのですが、どこか設定におかしいとこがあるのでしょうか?目次から個別ページに入ると、何処へも抜けれなくなってしまうし、更新すると違うページになってしまうのでとても不便なのですが、、、他の方のブログではそんな事は無いので、わたしの設定がどこかおかしいのだと思うのですが、、、またまたわからないのです。

投稿 ★節約ごはん★ | 2007/09/09 16:40:21


何回も本当にごめんなさい。
前の投稿の「更新」がへんなのは、原因らしきものがわかりました。
妙なとこに、
cocoPView.loadByAjax = true ;
を入れていたからだと思われます。たぶん。
取った事により、また他に不具合が出てるのに気が付かないのかもしれませんが、とりあえず大丈夫になったので、、、報告します。<(_ _)>

コメントって、追加とか変更とかはできないんですよね?何度も書くようになってしまって申し訳ありません。

投稿 ★節約ごはん★ | 2007/09/10 14:55:36


★節約ごはん★  さん、どうもです。
お返事遅くなりましてごめんなさい。
#コメントはお気軽に付けていただいてかまいませんので、お気になさらず。

| 投稿するときに、トラックバックのアドレスがフォームに残っているときには、トラックバックできてないという事なのですね?

まぁ、普通に考えるとそのはずなのですけれど……ココログの場合、送信できているのに残っている場合もあったため、油断は出来ません(苦笑)。
#最近は改善されているのかなぁ?

| トラックバックとコメントの最後のところに「戻る機能」が付けたくなって

えーと、今まで付けていたこれらのリンクは、実はプロコースじゃないと付けられない類のものだったのですね。ですので、そのまま適用するのは無理なのです。

で、需要があるなら……ということで、拙作
■【ココログ】記事のフッタにTOPに戻るリンクを付けるスクリプト
http://furyu.tea-nifty.com/annex/2007/08/top_2af5.html
に機能を追加してみました。
宜しければお試しください。

あと、目次スクリプトの方は、
cocoPView.loadByAjax = true;
にしていると、どうしてもブラウザの「戻る」(ヒストリー)機能との相性が悪くなってしまいます。

ブラウザのアドレスバーをよく見ているとわかるのですが、上記オプションが有効な状態でバックナンバー等を読込んでも、アドレスの#~以下しか変化しないと思います。
これは実はブラウザに取っては"ページが切り替わっていない"ように見えてしまうのです(なのでヒストリーとして残らない・「更新」すると以前の状態に戻ってしまう、等の問題が出てきてしまいます)。

申し訳ないのですが、これは作り上どうしようもないところなので、ご了承ください。

投稿 風柳>★節約ごはん★ さん | 2007/09/11 1:35:44


こんばんわ。またまたいろいろ、ありがとうございました。
いつでもいいんですというのを書きたいのに、書けば書くほど急がせてしまっているようになってしまって、困りました(笑)。

記事のフッタにTOPに戻るリンクを付けるスクリプト、さっそく使わせていただきました。コメントとコメントの間に線を入れたりしていたので、ちょっとフォーマットを調整するのに手間取り、お礼がこんな時間になってしまいました。私のはココログフリーですから、なんかものすごい高望みしていたのですね。知らないのは恐ろしいことですね(苦笑)。でも、ちゃんと付くようにしてくださって、ほんとに感謝です。ありがとうございました。

更新の件は、了解です。^^
cocoPView.loadByAjax = false;
にしたので、大丈夫になりましたが、目次タイトル部分(カテゴリー名や月名)の後ろにアドレスがたまに出るようになりました。これも、おんなじ影響なのでしょうね?
いろいろ本当に迷惑かけました。ありがとう」ございました。^^

投稿 ★節約ごはん★ | 2007/09/12 1:25:20


こんばんわ。
今日になって、また、動きがおかしくなってきました。
いろいろ操作してみたのですが、どうも、画像のある記事の表示がうまく動いていないような気がするのですが、、、?
あのあと、画像にポラロイド風の枠をつけたからなのかと思い、外したりしてやってみたのですが、結果は同じのようです。
1ページ目の表示は正常なのに、2以降をクリックしたときに、2の中の記事に画像が無いとスムーズに表示されますが、画像があると画像がへんな場所に飛んで表示されます。その後、個別のページで表示しても画像に枠が表示されないので、やっぱり枠との相性なのでしょうか?
また、自分では解決できそうにないのでコメントさせてもらっています。よろしくお願いします。

投稿 ★節約ごはん★ | 2007/09/17 2:02:28


うーん、この現象に関してはちょっとわからないです……すみません。
#Firefox や Opera だと問題無く表示されるみたいなので、IE(とそのエンジンを使っているブラウザ)の問題のような気もするのですが。

試しに、

(1) 写真の枠を付けるためのstyle設定を前の方(左サイドバーのメモリスト)に持ってくる。

(2) 目次の設置スクリプトで、
cocoPView.getArchivesRequest() ;
cocoPView.makePages() ; 
となっているところを
cocoPView.init_onload() ;
に変えてみる。

とかやってみたら、変化ありますかね?

投稿 風柳>★節約ごはん★ さん | 2007/09/17 10:09:26


こんにちわ。お返事ありがとうございます。
(1)をやってみたら、画像がへんなところに表示されたり枠が出なかったりは、まったく無くなりました。(嬉)

ただ、画面が乱れるのは完全には直らなかったので、(2)もやってみましたが、こちらは、あんまり変化がありませんでした。で、そのあたりを見ていたら、
cocoPView.getArchivesRequest() ;
cocoPView.makePages() ; 
この順序が逆だったので、試しに入れ替えてみたら、かなり動きがよくなった気がします。自分のPCで皆さんのブログを見ても、こんな現象は全く起こらないので、やっぱり何かどこかでへんなことをやってるんだろうと思うのですが、
とりあえず、かなり快適になりました。ありがとうございました。^^
風柳さんのPCから私のブログを見た場合、画面が乱れることはありませんか?お暇なときに、ちょっと覗いてもらえたら嬉しいです。そこのところがとても知りたいです。

投稿 ★節約ごはん★ | 2007/09/17 16:06:59


こんにちは。
この機能をたまたま見つけて便利そうだったので利用させて頂きました。
ありがとうございました。

投稿 mi84ta | 2008/01/10 21:24:30


mi84ta さん、はじめまして。
お役に立てたようなら幸いです。今後ともよろしくお願いします。

投稿 風柳>mi84ta さん | 2008/01/11 1:59:20


コメントを書く