2013-02-19 69 views
0

我正在hacking一個小Dropbox圖像幻燈片。我使用Dropbox公用文件夾共享index.html文件,該文件在'img'文件夾中查找一組圖像以創建幻燈片。找到沒有擴展名的圖像的MIME類型

我這樣做有以下,這是哈克,但工程

var findFiles = function(slideLimit){ 
    var limit = slideLimit; 
    var img = []; 

    for(var i = 1; i < limit; i++){ 

    var src = "<li class='slide slide-"+i+"'><img src='img/"+i+".png' onerror='imgError(this);''></li>" 
    $('.frame ul').append(src); 

    } 

} 

這工作不錯,但我想提供一個不依賴於其使用巴紐用戶的解決方案。

我希望省略擴展上的Dropbox會工作,但原來沒有:

var src = "<li class='slide slide-"+i+"'><img src='img/"+i+"' onerror='imgError(this);''></li>" 

我已經絞盡腦汁,最好我想

if(mimeType = png) 
    i + '.png' 
else if (mimeType = gif) 
    i + '.gif' 
etc 

位卡住解決方案。任何人有任何好點子?可能需要我採取不同的不同的方向......

+0

給它一個選項來設置擴展類型。 – epascarello 2013-02-19 17:49:11

+0

@epascarello感謝您的回覆,雖然不太清楚您的意思,但您可以詳細說明一下嗎? – cupcakekid 2013-02-19 17:53:39

+1

'var findFiles = function(slideLimit,ext){ext = ext || 「png」;' – epascarello 2013-02-19 17:59:02

回答

2

的最佳方式,讓用戶告訴你擴展

var findFiles = function(slideLimit, ext){ 
    var limit = slideLimit, 
     img = [], 
     lis = []; 
    ext = ext || "png"; 
    for (var i = 1; i < limit; i++) { 
     lis.push("<li class='slide slide-"+i+"'><img src='img/"+i+"."+ext+"' onerror='imgError(this);''></li>"); 
    } 
    $('.frame ul').append(lis.join("")); 
} 

平爲文件服務器,下行需要時間來不停的按服務器來查看文件是否它那裏

var findFiles = function(slideLimit){ 
    var limit = slideLimit, 
     img = [], 
     lis = [], 
     extList = ["png","gif"]; 

    function testExt() { 
     var ext = extList.shift(); 
     if (ext) { 
      var img = new Image(); 
      img.onload = function() { 
       load(ext); 
      }; 
      img.onerror = testExt; 
      img.src="img/1." + ext; 
     } 
    } 

    function load (ext){ 
     for (var i = 1; i < limit; i++) { 
      lis.push("<li class='slide slide-"+i+"'><img src='img/"+i+"."+ext+"' onerror='imgError(this);''></li>"); 
     } 
     $('.frame ul').append(lis.join("")); 
    } 

    testExt(); 
} 

[注意兩個代碼snipplets未經測試,寫到這裏他們在編輯]

相關問題