是否可以向浏览器“打开文件”对话框添加额外的控制?

Posted

技术标签:

【中文标题】是否可以向浏览器“打开文件”对话框添加额外的控制?【英文标题】:Is it possible to add additional control to browser "open file" dialog? 【发布时间】:2017-10-20 11:57:24 【问题描述】:

我想自定义尝试上传文件时弹出的“打开文件”对话框。例如,我想在其上添加一个按钮,单击该按钮会执行某些操作(例如,弹出另一个对话框或更改目录)。

【问题讨论】:

简短的回答是不,你不能 如果你使用IFileDialog,你可以通过调用IFileDialogCustomize::AddPushButton - Customizing the Dialog来做到这一点 您的网站只能从 Windows 浏览? @DavidHeffernan 我们可以这么假设 @charlietfl 为什么? 【参考方案1】:

理论上,您可以在您自己的应用程序中打开对话框时执行此操作。

当您提到 javascript 和“上传”时,我假设您的前端正在浏览器中运行。在那种情况下,不,你不能。该对话框由浏览器打开,您无法从客户端/javascript 端影响它。

【讨论】:

我见过一些不同的网站。打开了完全自定义对话框,而不是常规对话框。所以你错了。我想要原生对话框,但需要一些额外的功能。 @RandomUser 你见过一个普通的浏览器让客户端javascript操作它的文件打开对话框吗? 不,javascript 没有操纵。可能在客户端安装了一些东西,在 winapi 中添加了一些改变原生对话框的东西 本机窗口打开对话框已更改。浏览器或javascript没有做任何事情 @RandomUser 也许你应该专门问一个关于这个的问题。但是,为 Web 前端做这件事是一件很痛苦的事情,因为您希望该人使用的浏览器使用标准对话框 并且 在您的软件支持 的 Windows 版本上> 用户安装了您的客户端可执行文件...那为什么还要有 Web 前端呢?为该特定系统编写客户端会更容易。

以上是关于是否可以向浏览器“打开文件”对话框添加额外的控制?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以向 jquerymobile 对话框添加表单?

浏览器的缓存控制

是否有标准或首选标签类型可用于向某个位置添加额外的锚点/片段链接?

向 cordova.exec 函数添加额外的参数

向 createGroup( ) 添加额外信息以在 discoveryPeers( ) 中使用

AngularJs从组件向控制器添加方法