使用 jquery 的 Phonegap 更改图像 src 在 Android 上不起作用
Posted
技术标签:
【中文标题】使用 jquery 的 Phonegap 更改图像 src 在 Android 上不起作用【英文标题】:Phonegap change image src with jquery not working on Android 【发布时间】:2017-01-09 07:01:19 【问题描述】:我尝试使用 jquery 更改 img 标签的 src。在 Firefox 中它工作正常,但在 android 上的 phonegap 开发者应用程序中,没有任何反应。
我在做什么:
我通过 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);
;
【问题讨论】:
请打印图像变量的日志。所以你会明白这是因为图像 src 中的 url 或问题。 base64Image 和 url 看起来和我预期的一样。 您在图像变量中获得了正确的路径,所以为什么要附加 genTimestamp() 函数。可能是这个功能的问题。您能否也添加此功能并检查它返回的内容 也试试这个可能对你有用 $("#scanPreview").attr('src', image + '?' + genTimestamp()); 我已经试过了。但它不起作用:-( 【参考方案1】:而不是 .prop("src"
试试
var elem = document.getElementById('myimg'); myimg.src="theimage.jpg";
也区分大小写
【讨论】:
以上是关于使用 jquery 的 Phonegap 更改图像 src 在 Android 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在使用 iOS Phonegap 包装的 jQuery Mobile 中找不到具有相关 src 的图像
使用 allowEdit 标志在 phonegap 中本地裁剪图像