高版本ios中<input type="file" /> 选中比较大的png,无法触发change事件?

问题描述

在高版本的ios手机中,使用原生的<input type="file" accept="image/*" />时,可以正常打开相册,选中图片会正常返回但是与正常选中不同。无法触发input标签change事件,同时通过js访问改标签也发现files属性为空数组。即是说选中了,但没完全选中。

不是所有的png图片都可以触发这个bug。与图片的实际大小无关,即有可能几十KB的png能触发,几M的png反而不触发。目前2500x10000像素的png能稳定触发这个bug。

低版本的ios不会出现这个问题。

简单的复现代码

html:

<input id="inputEl" type="file" accept="image/*"  />

js:

  window.onload = function () {
    const inputEl = document.getElementById('inputEl');
    inputEl.addEventListener('change', function (e) {
      console.log(e);
    })
  }

图片: 通过windows的画图创建一个2500x10000像素的png。

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏