2016-09-01 42 views
0

我試圖用jQuery更改img標記的src。在Firefox中,它工作正常,但在android上的phonegap開發人員應用程序中,沒有任何反應。Phonegap更改圖像src與jquery不工作在Android上

我在做什麼:

我得到的圖像作爲一個Ajax請求的base64。如果請求完成,我從圖像中創建一個URL對象,並將img標記的src更改爲url對象。在這裏我的代碼:

 $.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     url: MySecretPHPFunctionOnAServerThatReturnsABase64Image..., 
     complete: function(data) { 
      var base64Image = data.responseText; 
      var image = makeUrlObject(base64Image, "image/jpeg"); 

      // ERROR!!! :-) 
      // Only working in Browser, not on android... 
      $("#scanPreview").prop("src", image + '?' + genTimestamp()); 
     }, 
     error: function() {} 
    }); 

我覺得makeUrlObject功能是不是錯誤的原因,但如果你想看到它,爲確保,或者如果我忽視的東西;-)

function makeUrlObject(dataURL, typeURL) {   
     var binStr = atob(dataURL); 
     var buf = new ArrayBuffer(binStr.length); 
     var view = new Uint8Array(buf); 
     for(var i = 0; i < view.length; i++) 
      view[i] = binStr.charCodeAt(i); 

     var blob = new Blob([view], {type: typeURL}); 

     binStr=null; 
     buf = null; 
     view = null; 

     URL = window.URL || window.webkitURL; 

     return URL.createObjectURL(blob);  
    }; 
+0

請打印圖像變量的日誌。所以你會知道這是因爲URL或圖像src中的問題。 – Krishna

+0

base64Image和url看起來像我所期望的。 – FloRoe

+0

你在圖像變量中獲得了正確的路徑,所以你爲什麼追加genTimestamp()函數。可能是問題在於這個功能。你是否可以添加這個函數並檢查它返回的結果 – Krishna

回答

1

代替.prop( 「SRC」

嘗試

變種ELEM =的document.getElementById( 'myimg'); myimg.src = 「theimage.jpg」;

也區分大小寫