javascript - 无需对任何 DOM 元素执行用户操作即可触发文件输入字段

标签 javascript jquery

<分区>

This question is fundamentally different from Programmatically trigger “select file” dialog box because the latter involves User Action on DOM elements. The question here is how to trigger an input file without user action...

因此,当我在处理我的 AngularJS 项目时,我注意到文件输入字段的一个特殊性......我在我的页面上隐藏了它的可见性,并且通常使用 JQuery 触发函数 ($("#random").trigger('click')) 当用户点击其他 DOM 元素时。

现在,有一个特殊的实例,当我想在从服务器检索一些数据后在页面加载时自动打开它。更像是为用户着想的快捷方式,一旦页面只考虑这个目的。所以收到回调结果后,我用同样的JQuery触发函数触发。但它不起作用。

所以..我认为只有通过编程/手动点击另一个 DOM 元素才能触发文件输入,而不是通过单独的可编程方式?

这是某些浏览器安全限制还是有人有解决方法?我已经尝试了一切,包括超时...

并不是说我真的需要这个功能,实际上没有它会减少“垃圾邮件”,但更多的是作为对此事的专业好奇心。

干杯。

中号

最佳答案

当单击另一个美观的按钮时,通常会使用 Javascript 隐藏和单击文件输入。上传文件对话框只能通过用户交互打开,比如单击另一个 DOM 元素。因此,在页面加载时单击文件输入不会执行任何操作。 Internet Explorer 应该支持在页面加载时打开上传文件对话框,但其他浏览器不支持。

<input type="file" style="display: none;">
<button onClick="showUploadDialog()">Upload File</button>
<script>
function showUploadDialog(){
  document.querySelector("input[type=file]").click();
}
</script>

关于javascript - 无需对任何 DOM 元素执行用户操作即可触发文件输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51689544/

相关文章:

javascript - 让 HTML5 验证与 onclick 一起使用?

javascript - 使用 PHP 列出来自使用 SOAP 的 Web 服务的信息

javascript - 基于 DOM 的 JS 路由是否更快,或者它只对组织有益?

javascript - 基础、jQuery 和 Prototype.JS : Dropdown & DropdownMenu not working as intended

jquery - 如何隐藏 nivo slider 标题区域并使幻灯片可点击

javascript - 向下滚动页面加载的最佳方式

javascript - 通过代码旋转网页?

javascript - JavaScript 中的表单验证。我想验证一个字段,以便它只接受 "KK-10-HUH"形式的汽车注册

javascript - 使用 ajax 在 BackBone 中发出 GET 请求

jquery - 如何在页面加载时显示加载图像时添加计时?