- 締切済み
スライドショー
imagesディレクトリにGIFとJPGという拡張子のちがう画像が混在して います。ファイル名は連番です。 これらの画像をスライドショーで表示するとき、ファイルを読みに行 ったときに、自動的に判別して表示させるにはどうしたらよいでしょ うか。番号で切り分けずに、 for(var i=0;i<30;i++) というループで実現したいです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sakura_1970
- ベストアンサー率33% (2/6)
- rsama
- ベストアンサー率0% (0/2)
onErrorイベントとか使うのはどうでしょうか? IEでしか試してないので もしかすると他のブラウザでは使えないかもしれませんけど・・・ <script language="JavaScript"> <!-- var num = 1; var count = 0; function loadEvent() { var image = document.getElementById("gazou"); // onErrorイベント // GIFが読み込めなかった場合、JPEGを設定 image.onerror= function() { // 無限ループ防止(画像が存在しない場合) image.onerror = null; // JPEG画像設定 image.src = num + ".jpg"; } // GIF画像設定 image.src = num + ".gif"; num++; count++; // 30回目以内なら繰り返し if(count < 30) setTimeout("loadEvent();",1000); } --> </script> <body onLoad="loadEvent();"> <img id="gazou"> </body>
- izayoimizuki
- ベストアンサー率41% (84/202)
Ajaxを使えば実現できます。 問い合わせてエラーになれば次に問い合わせる候補を探すといった処理が出来ます。 もちろんApacheだけでは不可能ですしPHP等のサーバーサイドプログラムやAjax通信用のモジュールが必要です。 これだけのサーバーからの強力な支援にはRoot権限が必要で共有レンタルサーバでは不可能です。 また専用レンタルサーバでも必ずしもできる事ではありません。 PHP等で引数でファイル名を渡して存在しなければ代替ファイルを探して送信を試みるようなプログラムを設置する方が圧倒的に小さな権限で行えます。 JavaScriptはそのようなプログラムの存在を知らないで動く方がはるかに容易なのです。
- MrYoYoYo
- ベストアンサー率33% (38/115)
javascriptでは不可能です。 というより可能であってはいけないと思います。 jaavascriptで扱えるものは、基本的にブラウザ(ローカル)にある情報のみです。 ただし、それだと、不便なので、サーバにある情報をjavascriptに渡してあげる事で、javascriptはよりインタラクティブな活動ができるようになります。 WEBで画像が表示されるという現象は、ブラウザが画像を読みにいっているのではなく、サーバに「画像を見せて下さい」とお願いをして、サーバが見せてくれたら、表示する。というものです。 つまり、ブラウザからすれば最初からどのファイルを見たいか知っている必要があります。 以上のことから、javascriptだけで nkyyio さんのやろうとしている事をやるのはちょっと無理があるかと思います。 ただ、前述にも説明したとおり、なんらかなサーバサイドのプログラムが使えれば方法はあると思います。