javascript代码的某些部分使chrome挂起在Ios中
我正在使用一些非常简单的html5和js代码,通过点击手机浏览器中的按钮来拍照,并将其发送到web服务。这部分代码在Ios(Ipad)中的Safari中完美运行。此外,该代码在Chrome浏览器桌面和桌面移动模式下也能完美工作 在Ios上的Chrome浏览器中javascript代码的某些部分使chrome挂起在Ios中,javascript,ios,html,google-chrome,Javascript,Ios,Html,Google Chrome,我正在使用一些非常简单的html5和js代码,通过点击手机浏览器中的按钮来拍照,并将其发送到web服务。这部分代码在Ios(Ipad)中的Safari中完美运行。此外,该代码在Chrome浏览器桌面和桌面移动模式下也能完美工作 在Ios上的Chrome浏览器中 我拍照的部分工作(拍照按钮),拍照并显示在输入框上拍摄的照片还没有问题 当我单击“保存照片”按钮时,chrome浏览器会挂起并且不会显示 回应 不幸的是,我没有一个Android设备来测试这部分 代码在Android的Chrome中工作
- 我拍照的部分工作(拍照按钮),拍照并显示在输入框上拍摄的照片还没有问题
- 当我单击“保存照片”按钮时,chrome浏览器会挂起并且不会显示 回应
- 不幸的是,我没有一个Android设备来测试这部分 代码在Android的Chrome中工作,无法在Ios上调试Chrome
<tr id="photo-functions-row">
<td></td>
<td>
<div style="max-width:30%">
<label for="take-photo" class="custom-file-upload">
<i class="fa fa-cloud-upload"></i> Take Photo
</label>
<input type="file" accept="image/*" capture="camera" id="take-photo" onchange="readURL(this);" />
<button id="clear-photo" type="button" onclick="clearPhoto();" class="ui-btn ui-btn-inline" style="margin:5px;">Clear Photo</button>
<button id="save-photo" type="button" onclick="savePhoto();" class="ui-btn ui-btn-inline" style="margin:5px;">Save Photo</button>
</div>
</td>
<td>
</td>
</tr>
在Ios上的Chrome浏览器中应该会有一些特定的中断执行。这一切都取决于你拍摄的图像的大小、你拍摄的应用程序以及你的iPad是哪一代。你们有什么样的?它还取决于您的CPU/RAM。即使是从相机里拍出来的,RAM也在其中扮演了重要角色。此外,谷歌可能意外地制造了一个使iOS设备挂起的bug。如果有任何更新,请查看iPad和iOS的更新。此外,您还可以尝试启用页面刷新。发现问题后,ios上的chrome会阻止警报消息,并在调用第一个警报时停止脚本执行。已删除警报,效果良好。您试图保存的图像大小是多少?在
savePhoto()中。
putreader.readAsDataURL
在reader.onload之后,像在readURL()
中一样加载
,然后重试。但是:我的建议是使用经典的FormData
并将图像附加到其中。
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#img-placeholder')
.attr('src', e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
}
function savePhoto() {
let files = document.getElementById("take-photo").files;
let reader = new FileReader();
reader.readAsDataURL(files[0]);
reader.onload = function (e) {
let base64Image = e.target.result;
console.log(base64Image);
let params = [];
let CalID = calItem.id;
params[0] = CalID;
params[1] = base64Image;
sendPhoto(params);
};
}
function sendPhoto(params) {
var json = jQuery.post(savePhotoWebServiceAddress,
{
jsonData: JSON.stringify(params)
}).done(function (data) {
let photomessage = "";
try {
var obj = jQuery.parseJSON(data);
if (obj != null) {
if (obj.success == true) {
photomessage = photoMessageSuccess;
}
else {
photomessage = photoMessageFailed;
}
}
} catch (e) {
photomessage = "An exception occured: " + e.message;
}
alert(photomessage);
clearPhoto();
});
}