- ベストアンサー
画像の無い場合に
現在、連番を振った画像を格納し表示すると言った処理を作成したのですが 画像が無い場合が存在し、その場合の対処を考えています。 画像が無かった場合と言うのは拾えるのでしょうか? 無理ならば無理と言うことでもかまいませんので、 ご存知の方いらっしゃいましたらよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
kentayosといいます。どうぞよろしく。 早速ですが、方法について書きます。 まず大きく分けて2つの場合が考えられると思います。 (1)どの番号のファイルが存在しないのかわかっている場合。 (2)どの番号のファイルが存在しないのかわからない場合。 の2つです。 (1)この場合は簡単です。スクリプト内にあらかじめ、 ------------------------------------------------ if(!(n==1 || n==3 || n==7)) { ・ ・ ・ } ------------------------------------------------ などのように、ファイルがない番号をif文などで指定しておけば そのファイル番号の部分が除かれます。 (2)この場合には2つほど方法があります。 (2)-1 ------------------------------------------------ <img src="xx.jpg" onError="shippai()"> ------------------------------------------------ このように画像のイベントハンドラに「onError」を指定しておき、 ヘッダー部分に shippai()などのように関数で処理を記述しておく方法です。 ただしこれだと、画像を実際に読み込んでみてダメだった場合の処理に なってしまいますので、あまりお勧めできません。 (2)-2 ------------------------------------------------ gazou=new Array(); for(i=1;i<=20;i++) { gazou[i]=new Image(); gazou[i].src="xxx"+i+".jpg"; } n=1; function gazou_kirikae() { fsize=gazou[n].fileSize; // ファイルサイズを取得 if(fsize != "-1") { ・ ・ ・ } if(n==20) n=1; else n++; // 20までいったら1に戻す。 } ------------------------------------------------ <body onLoad="setIntereval('gazou_kirikae()',1000)"> ------------------------------------------------ このような感じで、ファイルサイズを使って使います。 gazou[n].fileSize で現在表示させようとしている画像のファイルサイズを得ます。もしきちんと画像が存在すれば、fsize には数値が格納されますが、もし画像ファイルが存在しない場合は "-1" が格納されます。これを利用して、fsizeが-1の場合を除いて画像を表示させる処理をさせれば、画像が場合分けが可能です。
お礼
kentayosさんお返事ありがとうございました。 なるほど~ファイルサイズを使用すれば良いんですね。 自分ではどうして良いのか全く分からなかったので とても、参考になりました本当にどうもありがとうございました。