2014-02-27 35 views
0

我不知道這是否可能,但有沒有辦法在JavaScript和PNG之間解碼JPG和PNG?我假設沒有,但如果我能以不同的方式獲得幫助,請按照我所做的來做。Javascript能否確定PNG或JPG?

如果它是JPG或PNG,我需要設置圖像。現在我正在爲我的構建字符串添加一個擴展,因爲我只從我的代碼中獲得一個int。

我想知道我是否可以告訴它使用if/else語句添加擴展。
就像使用'.jpg'或'.png'這樣的一種方式不存在,另一個可以使用。

if (JPG) { 
     img.attr('src', samplePath + 'pages/' + page + '.jpg'); 
    } 
    else { 
     img.attr('src', samplePath + 'pages/' + page + '.png'); 
    } 

任何幫助或方向是非常讚賞

+0

在你的示例代碼中,'JPG'從哪裏得到它的值? – wizulus

+0

喜歡..你想破譯什麼? – wizulus

+0

@卡洛斯這是可能的,但你必須以某種方式獲取你的數據。從你的問題來看,你是如何做到這一點並不明確。需要更多信息。 – Brad

回答

0

首先,使用jQuery。

然後,讓我們說,你有你類似這樣的標記:

<img src="images/1x1.png" test-src="images/3" test-ext="jpg|png|gif" /> 

然後,你可以像這樣的onerror事件處理程序添加到圖像:

jQuery(function ($) { 
    $('img[test-src][test-ext]').each(function() { 
     // closures 
     var $img = $(this); 
     var sSrc = $img.attr('test-src'); 
     var sTestSrc = sSrc; 
     var aExtensions = $img.attr('test-ext').split('|'); 
     var iTest = 0; 
     var fAttemptLoad = function() { 
      if (iTest < aExtensions.length) { 
       sTestSrc = sSrc + '.' + aExtensions[iTest]; 
       $img.attr('src', sTestSrc); 
      } 
     }; 

     // event method closures 
     var fFailTest = function() { 
      // increment test extension 
      iTest++; 
      // if there are still tests to run? 
      if (iTest < aExtensions.length) { 
       fAttemptLoad(); 
      } 
     }; 

     // event handler 
     $img.error(fFailTest); 

     // initial state, start test. 
     fAttemptLoad(); 
    }); 
}); 

這裏是一個小提琴:

http://jsfiddle.net/9d276/6/