javascript 文件输入 onchange 不起作用 [仅限 ios safari]

标签 javascript ios safari onchange

除了 safari mobile 之外,下面的代码在任何地方都有效。 显然永远不会触发 onchange。

 // create a hidden file input element
 var input  = document.createElement("input");
 input.type = "file";
 
 // when the input content changes, do something
 input.onchange =
 function(event)
 {
  // upload files
 }

 // Trigger file browser
 input.click();

我发现了类似的示例,但它们都涉及甚至存在文件输入的某种其他可见表示形式的场景,并且它们都涉及表单清除变通方法。这在这里行不通。

点击图片时将调用此代码,以便上传新图片作为替换。

有什么提示吗?我做错了什么吗?

最佳答案

我会被诅咒:与其他浏览器相比,在 iOS safari 上需要两个额外的条件:

1) 输入必须实际附加到 DOM。

2) 设置 .onchange 将不起作用:必须改用 addEventListener。

关于javascript 文件输入 onchange 不起作用 [仅限 ios safari],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47664777/

相关文章:

javascript - jQuery ajax 无法访问远程服务器失败

javascript计数器不显示最小 double 数

javascript - mongodb 和 mongomapper

ios - UIButton仅在触摸时选择内容

ios - 如何在通知内容扩展中单击按钮时打开两个特定的 View Controller ?

javascript - 使用在 Safari 中不起作用的 javascript 禁用键盘快捷键?

facebook canvas 应用程序身份验证单点登录在 safari 5 上不起作用

javascript - 将 chatango 添加到 Bootstrap 问题

ios - 简单的 GCD 串行队列示例,例如使用 block 的 FIFO

html - 在 Safari 中,将鼠标悬停在 SVG 元素上会导致滚动元素重置其滚动位置?