javascript - 如何在javascript中打开文件上传对话框

标签 javascript jquery html

我的 webform 项目有问题,下面是一个示例代码来描述它:

<input type="file" id="btnfile" style="display: none"/>
<span onclick="uploadFile()">UploadFile</span>
<script>
    $(function() {
        uploadFile(); //file dialog not open
        $("#btnfile").click(); //file dialog not open
    });

    function uploadFile() {
        $("#btnfile").click(); //file dialog will open by clicking the span
    }
</script>

我希望我的页面在准备就绪时自动打开上传文件对话框,我使用函数“uploadFile()”来“单击”$( ), 但该函数不会工作,除非它被事件调用,例如单击上面的跨度。

  • 为什么 uploadFile() 无法在 $() 中打开文件对话框?
  • 有没有办法自动打开上传文件对话框?

谢谢。

最佳答案

为了安全起见,这种行为不能全部通过编程来完成。

您可以要求用户安装插件或接受签名的小程序来完成默认情况下无法通过编程方式完成的工作。

对于 Microsoft 浏览器,可能使用大多数版本都支持的 ActiveX 组件。

在 Firefox 中,您可以编写一个附加组件并要求用户安装它。 Firefox 附加组件是使用 javascript 开发的,对于 Web 开发人员来说,它比 NPAPI 或 XPCOM 更容易。

Google Chrome 将淘汰 NPAPI 并正在开发 PPAPI。

无论如何,只要用户接受额外的组件,您就可以这样做。

另一种方法是查找特定浏览器的安全漏洞,如果您找到了请告诉我

关于javascript - 如何在javascript中打开文件上传对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367489/

相关文章:

javascript - 暂停和恢复ajax重复请求

javascript - 当链接到标题时,jQuery 移动弹出窗口不显示

javascript - onreadystatechange 在 Firefox 中没有被调用

javascript - 在新窗口/选项卡中打开链接后如何将内容添加到页面?

javascript - 计算表中元素的正确 offsetLeft 的 jQuery 方法

javascript - 如何让浏览器等待 Assets 加载?

html - 如何修复使用不同编码的页面中的无效 HTML 字符?

javascript - 如何实现一个简单的react多步控制

javascript - 部署时出现错误 firebase 函数 [Promises 必须得到适当处理]

javascript - 如果输入为空,则阻止 ajax 调用