曜日別の背景画像が表示されない

[新着] Webテンプレートを仮オープンしました



0   名前: Yukino : 2007/08/10(金) 15:19  ID:VScpei1z sub-j7
こんにちは
曜日別の背景画像を使いたいのですが、何故か表示されません。
何回かやり直してみたり、アップロードしてみたりしたのですが 表示されません。
自分では原因が分からなかったので質問させて頂きました。



<html>
<head>
<style type="text/css">
<!--
body{margin:0px;}
-->
</style>
<style type="text/css">
<!--
body{overflow:hidden;}
-->
</style>
<script type="text/javascript">
<!--
wbgimg = new Array();
wbgimg[0] = "top7.jpg";
wbgimg[1] = "top1.jpg";
wbgimg[2] = "top2.jpg";
wbgimg[3] = "top3.jpg";
wbgimg[4] = "top4.jpg";
wbgimg[5] = "top5.jpg";
wbgimg[6] = "top6.jpg";
xx = new Date();
document.body.background = wbgimg[xx.getDay()];
-->
</script>
<title>Vista</title>
</head>
<body>
<div align=right style="height:10%">
<form method="post" name="ff" action="#" style="margin:0">
<iframe src="menu.html" name="menu" frameborder="0" width="100%" height="30%" style="border:0px;" scrolling="no" allowtransparency="true"></iframe></div>
<iframe src="top.html" name="frame" frameborder="0" width="100%" height="90%" style="border:0px;" scrolling"yes" allowtransparency="true" body{margin:0px;}></iframe>
</body>
</html>

↑インデックスのソース


回等お願い致します。

1   名前: あや : 2007/08/10(金) 15:19  ID:TRVH9wjM sub-ND
こんばんは

http://www.tagindex.com/javascript/message/week.html
http://siriasu.s10.xrea.com/71t/javascript/js30.htm

上のどちらにも書いてあることが答えだと思います。

このようにインラインフレームで画面分割を用いている場合はどうなるのでしょう? 勉強不足でこれ以上のレスがつけられません。申し訳ないです。

2   名前: 匿名 : 2007/08/10(金) 15:19  ID:CHTo0eRi sub-Cz
>>0
> 自分では原因が分からなかったので

エラーが出ているはずなのですよ。IE なら左下に三角形の警告マークが出ていると思うので、それをダブルクリックして下さい。何というメッセージが書かれていますか。

あと、HTML がボロボロなので以下でチェックしといて下さい。古いネスケさんだとブラウザごとクラッシュするかもしれません。
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
http://www.kanzaki.com/docs/htminfo.html
http://www.asahi-net.or.jp/%7Esd5a-ucd/www/

3   名前: Yukino : 2007/08/10(金) 15:19  ID:VScpei1z sub-j7
回答ありがとう御座います
HTMLは、今1つづつ直しているところです
ご指摘ありがとう御座いました

Donut Pをいつも使っていたのですが、三角形の警告マークは出ていませんでした
IEで見てみたら表示されました
「"document.body"はNULLまたはオブジェクトではありません」だそうです
よく内容が理解出来ません・・・
どういう事なのでしょうか?

4   名前: Yukino : 2007/08/10(金) 15:19  ID:VScpei1z sub-j7
すいません
付けたしです

DOCTYPEが何か分かりません
「<FONT> は HTML3.2、HTML4.0、HTML4.01 Transitional、HTML4.01 Frameset、XHTML1.0、Mozilla、MSIE、WebExplorer、iMode、J-SkyWeb、doti または 特許出願用HTML 用のタグです。」
と表示されたのですが、どれを指定すれば良いのでしょうか?
色々な種類があって分かりませんでした・・・
「<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 」
↑これを入れたら上のメッセージが出てきました

5   名前: 匿名 : 2007/08/10(金) 15:19  ID:ASZ1YNMC sub-Cz
>>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">

を宣言しておいて下さい。長いですが、それなりに意味があります。

6   名前: Yukino : 2007/08/10(金) 15:19  ID:VScpei1z sub-j7
返信遅くなってすみません・・・
出来ました!ちゃんと表示されています!
ありがとう御座いました!

DOCTYPE宣言教えて下さり、ありがとう御座いました
役に立ってます 笑 わざわざすみませんでした・・・

一覧へ戻る