3

我正在使用最新的 GeckoFX 18 (hindlemail's fork) 并努力实现这个简单的方法:处理文件下载。

我想知道 GeckoWebBrowser 中是否有文件下载。没有文件下载事件,更糟糕的是:单击导致文件下载的链接不会触发 /any/ 事件。它只是什么都不做。没有下载对话框,没有保存文件对话框,没有 url,什么都没有。

有没有办法可以处理文件下载?

4

1 回答 1

2

通过使用hindlemail 的geckofx 分支,您将不得不处理LauncherDialog.Download 事件。此事件有几个参数,如 url、文件名等。

LauncherDialog.Download += LauncherDialog_Download;
////
void LauncherDialog_Download(object sender, LauncherDialogEvent e)
{
    string filename = e.Filename; //do something with filename
    string url = e.Url; //use webclient to download file from this url
}

即使这样,您也无法从 Dropbox 或 facebook 等安全网站下载文件,但它会下载一些东西,总比没有好。我对 xul 不太了解,所以我也很难下载文件。

我也试过这个:

void LauncherDialog_Download(object sender, LauncherDialogEvent e)
{
    WebBrowser ie = new WebBrowser();
    ie.Navigate(e.Url);
}

如果可以通过这种方式下载文件,它将显示 Internet Explorer 下载文件对话框。可能是请求标头或其他原因。我还使用 Fiddler 找出 Firefox 发送到服务器的标头,但我发现没有任何用处。

于 2013-04-19T14:15:17.860 回答