在JQuery Mobile中设置图像src无法正常工作

时间:2017-04-09 09:05:34

标签: javascript cordova jquery-mobile avd

我正在使用Visual Studio + Cordova + AVD + jQueryMobile。

使用cordova-plugin-camera和cordova-plugin-file我得到一张照片。它返回一条路径:

file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg

我也可以使用resolveLocalFileSystemURL函数获得更相对的路径:

/1491727086753.jpg

每当我尝试设置现有图片代码的src时:

var elem = document.getElementById('source-preview');
elem.src = fullCameraPath; // file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg
// or 
elem.src = fileEntry.fullPath; ///1491727086753.jpg
// or
$('#source-preview').attr('src', ...);
<img id="source-preview" style="width: 100%;" />

上述方法均未失败,但未修改HTML元素且图像未显示。再次调用.src确实显示了那里被推动的路径。只有.attr('src', ...)才能说: Failed to load resource: net::ERR_FILE_NOT_FOUND表明存在问题。

但是,如果我手动将调试器中的HTML编辑为:

<img id="source-preview" style="width: 100%;" src="file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg" />

图像显示正确。但是,使用cordova-plugin文件提供的较短路径不起作用:

<img id="source-preview" style="width: 100%;" src="file:///1491727086753.jpg" />

这似乎告诉我图像存在,但jQuery Mobile出于某种原因拒绝(作为某种“安全检查”)加载它。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

就我而言,事实证明问题是标记。我的回调函数与<button>标记内的<form>相关联。显然,jQuery Mobile的默认行为是刷新页面。我没有注意到这一点,直到我在按下按钮之前更换标签并看到它变回来。因此,由于按钮位于表单中并且没有指向另一个页面,因此它只是一个循环循环,使按钮看起来像什么都不做。

在表单外移动按钮允许所有内容按预期开始工作。