是否可以捕获浏览器';使用Javascript打开/保存文件对话框事件

是否可以捕获浏览器';使用Javascript打开/保存文件对话框事件,javascript,jquery,browser,dom-events,Javascript,Jquery,Browser,Dom Events,使用Javascript可以监听浏览器的文件打开/保存对话框事件。当通知我“保存文件”对话框现在已打开时,我想执行一个操作。具体来说,我想在对话框打开时隐藏一个加载微调器(但这很可能是任何其他操作) 我相信我可以为我创建的对话框做到这一点,但不确定是否可以为浏览器的标准对话框做到这一点 这方面的任何指针都会非常有用。不,没有这方面的事件。查看所有可以调用文件对话框的元素 例如,处理元素上的单击事件。 比如: $('input:file').click(function(){ // onclick

使用Javascript可以监听浏览器的文件打开/保存对话框事件。当通知我“保存文件”对话框现在已打开时,我想执行一个操作。具体来说,我想在对话框打开时隐藏一个加载微调器(但这很可能是任何其他操作)

我相信我可以为我创建的对话框做到这一点,但不确定是否可以为浏览器的标准对话框做到这一点


这方面的任何指针都会非常有用。

不,没有这方面的事件。

查看所有可以调用文件对话框的元素

例如,处理
元素上的单击事件。 比如:

$('input:file').click(function(){ // onclick of file input
    $('.spinner').hide(); // hide spinner
});

对!!您可以利用大多数浏览器(在Chrome、Firefox和IE上测试正常)在单个文件下载对话框打开之前触发
beforeunload
事件

这样的代码就可以工作了:

$(window).bind ("beforeunload",  function (zEvent) {
    // PERFORM DESIRED ACTIONS HERE.
    /* This code will fire just before the Individual-file Download 
       dialog opens.
       Note that it will also fire before the tab or window is closed, 
       but that should not be a problem for this application.
    */
} );

打开并运行此代码段以查看其运行情况:

$(窗口).bind(“beforeunload”,函数(zEvent){
$(“#dwnldStatus”).text(“此代码在文件打开/保存对话框弹出之前运行。”);
} );
$(“#directDwnload”)。单击(函数(){
fireDownload();
} );
$(“#重置计时器”)。单击(函数(){
$(“#dwnldStatus”).html(
'下载将在3秒钟后开始。'
);
消防计时器(3);
} );
函数fireDownload(){
window.location.assign(
“//phs.googlecode.com/files/下载%20File%20Test.zip”
);
}
功能fireTimer(第二个SLEFT){
this.secondsLeft=secondsLeft | | 30;
this.countdownTimer=this.countdownTimer | | null;
如果(!this.countdownTimer){
this.countdownTimer=setInterval(函数(){
这是第二次;
$(“#timeleft”).text(this.secondsLeft);

如果(this.secondsLeft为什么会让人失望?我想说这是保护用户隐私的一件非常好的事情。@1顺便说一句。@BryanDowning,@BrockAdams,这确实击中了一个有用的场景。但这只在他们导航到zip时有效,而不是在他们点击Ctrl-O、Ctrl-s、右键单击“将图像另存为”等时有效。@MatthewFlaschen,问题似乎是针对场景w当页面/应用程序准备下载单个文件时。Ctrl-O和Ctrl-S不适用。在最常见的应用程序中,右键单击也不适用。我想他指的是常规的文件->保存,文件->打开对话框,而你不能观看浏览器的工具栏或菜单栏。我指的是当你打开时出现的对话框nload一个文件,其内容配置为附件。我想你无法观看该事件。谢谢。我认为这可能适用于meThis。我不确定为什么此答案的评分不高。