このページの編集用画像

CSS:カレンダーの今日を強調2007年02月12日 11時36分16秒

JUSTBLOGに書いている番外地!で,カレンダーの今日の部分を強調するようにスタイルシートを変更しました.そこで,この朝風呂具にも適用しようとしましたがうまくいきませんでした.
@niftyのココログやJUSTBLOGのカレンダーは今月以外は表示できないので,今日だけをチェックするだけですが,アサブロの場合は,今月以外は強調しないように判定するルーチンを追加する必要がありました.
次男に変更してもらい目的を果たしました

・ツールバー設定
<!-- TODAY ここから-->
<script type="text/javascript" src="URL/today1.js ">
</script>
<!-- TODAY ここまで-->


・today1.jsの内容
2007/08/19追記:
システム側の変更があり,改訂版を公開しました
/*今日の日付のスタイルを変更する*/
function todaychange(){
    var ed,today,yyyy,mm,mydate,num,cells;
    var flag_kongetu = 0;
    cells = document.getElementsByTagName("td");
    ed = cells.length;
    mydate=new Date();
    today= "" + mydate.getDate();
    yyyy = "" + mydate.getYear();
    mm = "" + mydate.getMonth();mm++;
    if(String(mm).length == 1){mm = '0' + mm;}
    if(String(today).length == 1){today = '0' + today;}
    for(i=0;i<ed;i++){
                /*一個もChildNodeが無い場合にchildNodes[0].hasChildNodes()を
        実行すると死ぬのでchildNodeを作ってスペースだけのセルを作る*/
    if(! cells[i].hasChildNodes()){
          cells[i].appendChild(document.createTextNode(' '));
    }
          /*今月以外のカレンダーで適用されるのを防ぐ.*/
        /*年/月があるセルはchildNodesが2以上*/
    if(cells[i].childNodes.length >= 2){
            /*今月のカレンダーかどうか判定.年月はchildNodes[1]に入っている.*/
        if(cells[i].childNodes[1].nodeValue == ' ' + yyyy + '/' + mm + ' '){
            flag_kongetu = 1;
        }
    }

        /*セルの中に<a>があったりしてchildNodesにchildNodesがある場合の対処*/
    if(cells[i].childNodes[0].hasChildNodes()){
        num = "" + cells[i].childNodes[0].childNodes[0].nodeValue;
    }else{
        num = "" + cells[i].childNodes[0].nodeValue;
            }

            /*今日の日付のセルのclassをtodayに.*/
            if(num == today && flag_kongetu){
            cells[i].className ="today";
        }
    }
}
todaychange();
・注意事項 JAVASCRIPTを呼び出す部分(ここの場合はツールバー)はソース上で,カレンダーより後にある必要があります
・オリジナル記事は茅乃さんのみるくここあにあります

TAMO’s HOME 別荘(メインblog)

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
メインblogのサブタイトルはTAMO’s HOME ○○です.○○を漢字2文字で答えてください.

コメント:

トラックバック

このエントリのトラックバックURL: http://tamo.asablo.jp/blog/2007/02/14/1183915/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。

_ TAMO’s 朝風呂具 - 2007年03月06日 22時34分43秒

カレンダーの今日を強調するというJAVA SCRIPTにバグがありました.
今日は6日ですが,06日になっていませんでした.

if(String(mm).length == 1){mm = '0' + mm;}
if(String(today).length == 1){today