ページに関するTips


・他のページの情報表示

NN2No good NN3OK NN4OK MozillaOK IE3Unknown IE4OK

「最終更新日」では該当のページの最後に更新した時刻を表示する方法を紹介しましたが、 他のページの更新状況を表示することはできません。

このような場合、通常は CGI、 時には Java を使用します。 然し、デメリットもないわけではありません。

※ CGI で作成すれば大抵の場合は問題はないと思いますが...
  なにしろ「JavaScript Tip集」なもんで... f(^^;

そこで、HTML の一部( ここでは、指定したファイルの最終更新時刻 )を CGI で作成し、 JavaScript でそれを加工して表示するのはどうでしょう。

このための方法としては、 script タグの src属性を利用します。

以下はその例です。

<script language="JavaScript1.1"><!--
_flist = new Array();        // 更新情報の配列
// 西暦4桁年取出し関数
function getFullYear(d){
  var y=d.getFullYear?d.getFullYear():d.getYear();
  var oy=y;
  if(y<100) y+=1900;
  if(y<1980) y+=100;
  if(oy!=y) d.setYear(y);
  return y;
}
// 最終更新日情報生成関数
function _Flist(f,y,m,d,t){
  this.filename=f;
  if(d==0) this.lastmodified=null;
  else     this.lastmodified=new Date(y,m,d);
  this.title=t;
  return this;
}
// --></script>
<script language="JavaScript1.1"
        src="LModify.cgi?t=t&f=A.htm,B.htm,C.htm"
></script>
</head>
<body ... >
    :
<script language="JavaScript1.1"><!--
// 更新情報を HTML で出力
var s='';
for(var i=0; i<_flist.length; i++){
  var o=_flist[i], m=o.lastmodified;
  if(m) s+='<p><code>'
         +  getFullYear(m)+'年'
         + (m.getMonth()+1)+'月'
         +  m.getDate()+'日 '
         + '<\/code>更新'
         + '<a href="'+o.filename+'">'+o.title+'<\/a><\/p>';
  else  s+='<p>'+o.filename+'は削除されました<\/p>';
}
document.write(s);
// --></script>

この文字の部分は必要に応じて修正します。

2番目の SCRIPTタグで指定している LModify.cgi は 指定したファイルに関する更新情報を取り出し、JavaScript の形式で出力する Perl( Perl5 )で記述された CGI です。
呼出形式に関してはこちらを参照してください。
因みに CGI のソースはこちら

このスクリプトでは取り出した更新情報は _flist 配列に格納されますので、 BODY部で適当に加工して document.write すれば表示できます。


使用例

サンプルはこちらです。


注意事項

Caution
このスクリプトは外部ファイルの機能を使用していますので、JavaScript1.1 を サポートしていない古いブラウザでは無処理になります。
( 逆に、関連するスクリプトは全て JavaScript1.1 の指定をしないと エラーが発生する可能性があります )

Caution
この手法が役に立つ場面は、強いて言えば以下の用途の場合でしょう。


Caution
CGI で出力する JavaScript に日本語が含まれている場合、 通常は暗黙に HTML と同じ文字コードと思われがちですが、 IE5 など一部のブラウザでは日本語の文字コードが固定されている場合があります。
もし、このような条件に該当するような場合はブラウザの種類、バージョンにより こまめに文字コード変換を行うか、いっそあきらめて HTML 全体を CGI で出力した方が 良いと思われます。

Netscape Navigator2.01Ja Internet Explorer 3.02Ja
この手法自体、 script タグの src 属性を使用しているので、 このプロパティの機能のないブラウザでは使用できません。

Copyright(c) 1998 - 2001 ShinSoft. All rights reserved.