準備

CRssFeed.js を 使用して web ページに RSS の内容を表示させる前に次の事項を確認/決定しておくこと。
CRssFeed.js の URL
トップページ「CRssFeed.js」から CRssFeed.js をダウンロードし、それを自分の web サーバにアップロードしておく。そしてその URL を確認しておくこと。ダウンロード前の CRssFeed.js を直接使用するとバージョンアップ、ページやダウンロード元の変更などで予期せず使えなくなる可能性がある。
RSS の内容を表示する web ページ中の位置
自分の web ページの中のどの位置に RSS の内容を表示させるかを予め決めておくこと。
RSS の URI
内容を表示させる RSS と web ページが同じサーバにあることを確認する。もし、web ページとは異なるサーバに RSS があるならば「HaloScan のための CacheUpIt の設置手順」を参照して同じサーバにもってくること。
RSS のバージョン
CRssFeed.js が対応している RSS は 0.9x, 2.0 である。内容を表示させる RSS が 1.0 ならば「rssconv の使用方法」を参照して RSS 2.0 に変換すること。

手順

CRssFeed.js を使用する手順は次の通りである。なおここで示している例は HTML 4.01 Transitional による HTML である。
  1. ヘッダに <script type="text/javascript" src="CRssFeed.js の URI" charset="UTF-8"></script> を入れる。
    <head>

    <script type="text/javascript" src="CRssFeed.js" charset="UTF-8"></script>

    </head>
    入れ替え事項の説明
    CRssFeed.js の URI
    自分用にアップロードした CRssFeed.js の URI。
    解説
    ヘッダとは HTML 中の head 要素(<head> から </head> まで)のことである。ここで JS ファイルをロードするのが基本。しかし、何らかの都合でヘッダに入れたくない場合もあり得る。その場合はその web ページで最初に CRssFeed クラスを使用する場所より前に上記 script 要素を入れればよい。script 要素を入れることができるのは head 要素か body 要素の中である。それ以外の場所に入れてはならない。
  2. RSS を表示する場所に <div id="表示箇所の ID 属性値">JavaScript が無効かエラーが発生しているときの文言</div> を入れる。
    <body>

    <div id="BlogSummary">JavaScript が無効か何らかのエラーが発生しています。</div>

    </body>
    入れ替え事項の説明
    表示箇所の ID 属性値
    RSS を表示する場所を一意に識別するためのもので、その web ページ中で他の ID 属性値と重ならないものでなければならず、英字で始まり英数字と _ による文字列でなければならない。大文字と小文字は区別される。
    JavaScript が無効かエラーが発生しているときの文言
    RSS の表示において何らかのエラーが発生していて何もそこに書き出せないときに表示される文言で、JavaScript が使えないブラウザや、使えても無効になっているブラウザでも表示される。
    解説
    RSS の内容を表示するための「箱」をここで準備する。RSS の内容はこの箱の中に表示される。
  3. 直後に次のコードを入れる。
    <script type="text/javascript"><!--
        var CRssFeed クラスオブジェクトの変数名 = new CRssFeed(
            'RSS のパス',
            document.getElementByID('表示箇所の ID 属性値'),
            true
        );
        CRssFeed クラスオブジェクトの変数名.LoadInterval(true);
    // --></script>
    <script type="text/javascript"><!--
        var BlogSummary = new CRssFeed(
            '/myname/iblog/rss.xml',
            document.getElementByID('BlogSummary'),
            true
        );
        BlogSummary.LoadInterval(true);
    // --></script>
    入れ替え事項の説明
    CRssFeed クラスオブジェクトの変数名
    RSS を表示するためのデータと機能が一つにまとめられた「オブジェクト」に付ける名前。英字で始まり英数字と _ による文字列でなければならない。大文字と小文字は区別される。他の JavaScript の変数と重なってはならない。
    RSS のパス
    表示する web ページから見た RSS のパス。ここに http:// で始まる絶対 URL を指定すると読み込めなくなる。使えるのは / で始まる絶対パスか、/ で始まらない相対パスのどちらか。
    表示箇所の ID 属性値
    ステップ 2 で書いた 表示箇所の ID 属性値
    説明
  4. 直後に <noscript>JavaScript が使えないブラウザ用の文言</noscript> を入れる。
    <noscript>JavaScript が使用できない場合は直接 <a href="/myname/Sites/iblog/index.html">MyBlog</a> を参照するか、<a href="/myname/Sites/iblog/rss.xml">その RSS</a> を参照してください。</noscript>
    入れ替え事項の説明
    JavaScript が使えないブラウザ用の文言
    JavaScript が使えないブラウザや JavaScript が無効に設定してあるブラウザ向けの内容。RSS と同等な内容か、同等な内容にアクセスするための手段を提供する。HTML 4.01 Strict や XHTML 1.0 Strict あるいは XHTML 1.1 では noscript 要素の中に a 要素を使用できないので注意が必要。代替手段のためのリンクを記述したい場合は HTML 4.01 Transitional や XHTML 1.0 Transitional を使用しなければならない。
    説明
    Web アクセシビリティの指針を示した JIS 規格 X 8341-3 には script タグをサポートしていないウェブブラウザのために、noscript 要素を使ってそこにスクリプト言語があること及び代替手段を利用者に知らせる。 とある。ブログの RSS の場合はブログのトップページへのリンクを入れるとよいだろう。

出力内容

CRssFeed クラスオブジェクトによる RSS の出力は次のようになっている。実際には改行はない。
<a href="channel 要素直下の link 要素の内容" title="channel 要素直下の description 要素の内容" hreflang="channel 要素直下の language 要素の内容">channel 要素直下の title 要素の内容</a>
<ol>
<li><a href="item 要素の link 要素の内容" title="item 要素の description 要素の内容をテキスト化したもの" hreflang="channel 要素直下の language 要素の内容">item 要素の title 要素の内容</a></li>
… item 要素の数だけ繰り返される …
</ol>
この中で a タグの hreflang="channel 要素直下の language 要素の内容" の部分は RSS の channel 要素の中に language 要素がなければ現れない。以下、各部の説明をする。
要素とは、開始タグから終了タグ全体を言う。HTML で例を挙げると例えば、<a href="index.html"> から </a> までを a 要素という。href="index.html" の href は属性名、index.html は属性値、a 要素の href 属性の値は index.html ということになる。そして開始タグと終了タグの間の内容は子供要素ということになる。
以下、可変の項目について説明する。
channel 要素直下の link 要素の内容
RSS 全体が要約しているサイトの URL。ブログの RSS ならばそのブログの URL が入る。
channel 要素直下の description 要素の内容
RSS 全体が要約しているサイトの説明。
channel 要素直下の language 要素の内容
その RSS が提供している内容がどの言語で書かれたものかを表す。日本語の場合は ja となる。
channel 要素直下の title 要素の内容
RSS 全体が要約しているサイトまたは RSS のタイトル。ブログの RSS ならそのブログのタイトルが入る。
item 要素の link 要素の内容
RSS が提供している項目の URL。ブログの RSS ならばエントリの URL が入る。
item 要素の description 要素の内容をテキスト化したもの
RSS が提供している項目の説明。ここに HTML や XHTML が入っている場合はテキストに変換される。
item 要素の title 要素の内容
RSS が提供している項目のタイトル。ブログの RSS ならばそのブログのエントリのタイトルが入る。

CSS による表示のカスタマイズ

出力される HTML のカスタマイズではなくその表示のカスタマイズなら、JavaScript の知識がなくともできる。まず、RSS の内容が出力されるのは ID 属性によってその web ページの中で一意に決まった場所だということに着目する。ID 属性で特定される部分の CSS を書けば RSS の内容の表示をカスタマイズすることができる。それは「状況依存セレクタ」というものを使う。以下にその例を幾つか挙げる。ブログの RSS を表示するケースが多いと思われるので、ブログという前提とする。また 表示箇所の ID 属性値 として BlogSummary という値を指定したものとする。
小さめの文字にする
#BlogSummary {
    font-size:  smaller;
}
ブログへのリンクを表示させない
#BlogSummary a {
    display:    none;
}
#BlogSummay ol li a {
    display:    inline;
}
各エントリへのリンクの前の数字を点にする
#BlogSummay ol {
    list-style-type:    disc;
}
各エントリへのリンクをインデントさせない
#BlogSummay ol {
    padding-left:   2em;
    margin-left:    0em;
}

動作のカスタマイズ

上記手順で示したコードでは、15 分毎に RSS の内容を繰り返し読み取り表示の更新が行われる。この動作を変えることができる。その動作を指示しているのはステップ 3 の次の部分だ。
CRssFeed クラスオブジェクトの変数名.LoadInterval(true);
更新をしないようにする
上の LoadInterval(true) を変えて次のようにする。
CRssFeed クラスオブジェクトの変数名.Load();
LoadInterval(true) の true は最初に RSS の内容を読み取って出力するかどうかを表している。ここを false にすると最初は何も出力されず、したがって、JavaScript が無効かエラーが発生しているときの文言 が表示されたままになり、最初の更新時刻になって初めて RSS の内容と差し替えられる。
更新間隔を 30 分にする
上の一行の直前に次の一行を追加する。
CRssFeed クラスオブジェクトの変数名.m_LoadInterval = 30 * 60 * 1000;
同期動作にする

デフォルトでは CRssFeed クラスオブジェクトは非同期に動作する。つまり、LoadInterval や Load が実行されても、その動作中にブラウザは次の処理に進むことができる。このため RSS の表示部分以降の描画が続行され、その間に RSS の読み取りと表示が並行して行われる。そうすると大抵の場合は web ページ全体が表示されきる時間が短くなるというメリットがある。

しかし、RSS の表示部分以降の描画が進んでから後で RSS 表示部分の内容が描画されるので、表示上関連する部分の再配置が行われる。これが気分が悪い場合もあるだろう。また、ブラウザが消費するメモリを節約するために JavaScript を理解している人は CRssFeed クラスオブジェクトの再利用をしたくなるかもしれない。このとき非同期で動作していると都合が悪い。

そこで、非同期(並行動作)ではなく、LoadInterval や Load が実行されたらそれが完了するまで次の処理に進まないようにするにはステップ 3
true
だけ書いてある行を
false
とする。

XHTML の場合

上記手順で示したコードは HTML 用である。HTML では scirpt 要素で JavaScript を書くとき、その script 要素の内容をコメントにして script 要素を理解しないブラウザに JavaScript コードが表示されてしまうのを防ぐのが通常だ。

しかしながら XHTML で web ページを記述していてなおかつそれが web サーバによってそのページのメディアタイプが application/xhtml+xml、application/xml、text/xml などとされる場合はこの措置はまずい。なぜならば XML では -- したがって XHTML では -- コメントは本当にコメントとして扱われてしまうからだ。このため <!-- --> で囲まれた部分は JavaScript コードではなくコメントとされてしまう。その場合は <!-- --> の代わりに <![CDATA[ ]]> を使えばよい。

しかし、多くの場合は XHTML で書かれた web ページであってもそうする必要は無い。というのは拡張子が html のとき web サーバはそのページのメディアタイプを text/html とする場合が多いからである。少なくとも .Mac の web サーバはそうなっている。