使用 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 中本地裁剪图像

jquery mobile ui无法在移动设备上运行

使用 phonegap 提交数据和图像的表单

GPS 追踪器与 jQuery 移动、PhoneGap 和谷歌地图

更改 PhoneGap 应用程序的应用程序切换器/设置图标