いつもお世話になっています。
jqueryでfile apiを利用して、カメラで撮影された写真をブラウザに表示する処理を作ったのですが、iPhoneでのみ最新のiOSが出るたびに表示も選択もされていない状態になり動かなくなります。
毎回利用者のiOSの更新をしていただくことで利用できるようにはなるのですが、自分の書き方が悪いから毎回動かなくなるのではないかと思い始めました。
ちなみに、ファイル選択から写真を選択した場合は問題なく動いています。
何かしら原因がありましたら教えてください。
JavaScript
1<script> 2 $(function(){ 3 $(document).on('change', '.upload-photo', function(){ 4 let file = $(this).prop('files')[0]; 5 let num = $(this).data('num'); 6 $(this).parents('label').hide(); 7 8 if (! file.type.match('image.*')) { 9 alert('画像以外のファイルはアップできません'); 10 return; 11 } 12 13 // 画像表示 14 let _this_parents_rect = $(this).parents('.post-image').find('.rect'); 15 let reader = new FileReader(); 16 reader.onload = function() { 17 _this_parents_rect.html('<a href="" class="delete-bt-default" data-num="' + num + '">×</a><img src="' + reader.result + '" class="upload-image" />'); 18 } 19 20 reader.readAsDataURL(file); 21 }); 22 }); 23</script>
html
1<div class="post-image"> 2 <div class="rect-wrap"> 3 <div class="rect"> 4 <img src="/images/photo_ico.png" width="30%" /> 5 </div> 6 </div> 7 8 <label for="upload-photo1" class="upload-btn"> 9 <input type="file" name="upload_photo[1]" data-num="1" 10 id="upload-photo1" class="upload-photo" accept="image/*" /> 写真1を選択 11 </label> 12</div>
あなたの回答
tips
プレビュー