2012-06-21 15 views
7
var img = new Image(); 
img.src = "images/myFolder/myImage.png"; 

上記はmyImage.pngのみをロードします。 myFolderのすべての画像を読み込むには?JavaScript:フォルダ内のすべての画像を読み込む方法は?

+0

をください画像にランダムな名前や何らかのシーケンスがありますか? –

+0

これらは0.png、1.pngのシーケンスですが、シーケンスがいつ特定のフォルダで終了するのかわかりません。 – MaiaVictor

答えて

6

JavaScriptはファイルシステムの内容に直接アクセスできません。まず、PHPなどで書かれたサーバー側のスクリプトを使用してコンテンツを渡す必要があります。

その後、JavaScriptをループして個別に読み込むことができます。

1

そのフォルダ内のファイルのリストを取得するには、何らかの方法が必要です。これは、配列として手動で定義することも、ファイルをリストするサーバー側のスクリプトにAJAX要求で取得することもできます。どちらの方法でも、フォルダ内のすべての画像を取得する「魔法」の方法はありません。

0

フォルダ内のファイルの名前がす​​べてある場合は、各イメージをループして名前で開く必要があります。フォルダ全体を直接読み込むだけでは、Javascriptのファイルシステムにアクセスして名前を取得することはできません.PHPのようなものを経由してページに渡す必要があります。

14

自分のイメージ名があなたの言ったように連続している場合は、画像が存在する場合、各反復でチェック、名前のループを作成することができます - とそうでない場合は - ループを破る:

var bCheckEnabled = true; 
var bFinishCheck = false; 

var img; 
var imgArray = new Array(); 
var i = 0; 

var myInterval = setInterval(loadImage, 1); 

function loadImage() { 

    if (bFinishCheck) { 
     clearInterval(myInterval); 
     alert('Loaded ' + i + ' image(s)!)'); 
     return; 
    } 

    if (bCheckEnabled) { 

     bCheckEnabled = false; 

     img = new Image(); 
     img.onload = fExists; 
     img.onerror = fDoesntExist; 
     img.src = 'images/myFolder/' + i + '.png'; 

    } 

} 

function fExists() { 
    imgArray.push(img); 
    i++; 
    bCheckEnabled = true; 
} 

function fDoesntExist() { 
    bFinishCheck = true; 
} 
関連する問題