プロが教えるわが家の防犯対策術!

いつもお世話になります。
下記java scriptにて画像(4枚)をランダムに表示させるようにしたいのですが、
なぜか<body onload="display_image()">が実行されず表示されません。
これを新規で移せば実行されるのですが、作成中のHTML上ではなぜか文字色がグレーとなり実行されません。

アドバイスお願い致します。

<div align="center"><br />


<Script type="text/javascript">
<!--
var iValue, rNumber;
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
var img4 = new Image();
img1 = "img/img1.jpg";
img2 = "img/img2.jpg";
img3 = "img/img3.jpg";
img4 = "img/img4.jpg";
function display_image(){
iValue = Math.random() * 4;
rNumber = Math.ceil(iValue);
if(rNumber==0) rNumber++;
document.image1.src=eval("img" + rNumber);
}
//-->
</Script>

<body onload="display_image()">


<img src="image8" name="image8" width="700" height="400" id="image8" /></div>
</Body>

A 回答 (6件)

とりあえずタグの入れ子を直しても動かないという前提で



>img1 = "img/img1.jpg";
→img1.src = "img/img1.jpg";
new Imageとしているならこうしないと×
後のdocument.image8への代入も既にimageオブジェクトなのでdocument.image8.srcとする必要なし。

//あとこういう場合は配列使おう。楽になるよ
var a_img = ["img/img1.jpg","img/img2.jpg","img/img3.jpg","img4.jpg"];
document.image8.src = a_img[Math.floor(Math.random()*a_img.length)];

evalは可能な限り使わない方が良い
    • good
    • 0

>下記の様に変えてみました


>>divの対応が間違えてる


<!-- 質問文 -->
<div><br />
<Script>
</Script>
<body>
<img /></div>
</Body>


<!-- 補足による修正後? -->
<div><br />
<Script>
</Script>
<body>
<img />
</CENTER></P>
</Body>
    • good
    • 0

改めまして。


「作成中の」がキーポイントなのではないですか?

『セキュリティ保護のため、このコンピュータにアクセスする可能性のあるスクリプトや・・・・(以下略)』
の状態になっているだけではないですか?
    • good
    • 0

あ。

。。休みボケしてるな。。。。
ごめんなさい。ANO.2は破棄してください。
    • good
    • 0

eval("img" + rNumber);


で構築されたファイル名を持つファイルはありますでしょうか?
このままだと拡張子がないのですが。
    • good
    • 0

>document.image1.src=eval("img" + rNumber);


><img src="image8" name="image8" width="700" height="400" id="image8" />

それで、"image1"はどこにあるの?
それとdivの対応が間違えてる
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

下記の様に変えてみましたがダメです…

"image1"は全く違う所でした…


document.image8.src=eval("img" + rNumber);
}
//-->
</Script>

<body onload="display_image()">
<img src="image8" name="image8" width="700" height="400" id="image8" />
</CENTER></P>

お礼日時:2007/08/22 14:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!