>>3
ですよねー。
document.body というのは body 要素(<body>...</body>)を表すオブジェクトです。>>0 のソースをよく見て下さい。ブラウザが上から順にソースを読み込んでいきますが、スクリプトが見つかればその場で実行します。ところが、スクリプトが実行されたとき、まだ body 要素は読み込まれていません。ゆえに「document.body は(まだ)ないよ」というエラーになるわけです。
ではどうするか。最も簡単なのは、body 要素が読み込まれてからスクリプトを実行させることです。つまり、スクリプトを一番最後に置けば良い(まあ、開始タグ <body> の後ろならどこでも大丈夫)。
ただし。>>0 のスクリプトには問題があります。document.body.background というのは、HTML で言うところの <body background=".."> に対応します。ところが、ご存知のように、この background 属性は廃止予定であり、今後使うべきではありません。
背景を指定するには、普通 CSS を使います。そこで、CSS を使うようにスクリプトを改良しなければなりません。
(function () {
var file = arguments[(new Date).getDay ()];
document.write ('<style type="text/css">');
document.write ('body { background-image: url(' + file + '); }');
document.write ('<\/style>');
} )('top7.jpg',
'top1.jpg',
'top2.jpg',
'top3.jpg',
'top4.jpg',
'top5.jpg',
'top6.jpg');
ここでは、style 要素を書き出すようにしました。ご存知の通り、style 要素は head 要素の中にしか置けません。したがって、このスクリプトも head 要素内で実行されるようにして下さい。
>>4
> DOCTYPEが何か分かりません
DOCTYPE 宣言というのは、ページ内で使用するタグセットを定義するもので、HTML では最重要項目の 1 つです。これを書かなければ正式な HTML とは認められません(XHTML の場合を除く)。マトモな HTML 解説書ならちゃんと説明があるはずです。
本来は >>4 の宣言が望ましいのですが、>>0 を見る限り非推奨要素や廃止予定属性を使っているようなので、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
を宣言しておいて下さい。長いですが、それなりに意味があります。