javascript - 如何制作 Greasemonkey 脚本来自动下载文件?

标签 javascript greasemonkey download

<分区>

我转到该页面,它有 1 个 zip 文件,但我不知道名称,只知道它是一个 .zip

我希望 Greasemonkey 自动下载这个 zip,也许使用 flashgot 或其他东西?

所以我需要它在页面加载时激活,然后查找 *.zip,并将其自动添加到下载中。

有什么想法吗?

最佳答案

Greasemonkey 本身无法自动将 zip 文件或其他任何内容保存到本地文件系统。
这是设计使然;允许用户/页面 JavaScript 保存文件是一个安全灾难。

您的选择:

  1. 让 Greasemonkey 选择正确的链接并打开文件保存对话框(节省您的搜索工作和 1 次点击)。
  2. 让 GM 将 zip 文件转发到您自己的服务器。然后您的服务器应用程序可以自动保存文件。
    请注意,“服务器”可能是您自己的机器,运行类似 XAMPP 的程序。 .
  3. your own Firefox Add-on .


选项 1,仅限 GM:

GM 可以做的是弹出正确文件的文件保存对话框:

Windows, File-Save dialog

如果只点击一次,仍然需要用户交互。

例如,假设页面包含此链接:

<a href="http://Suspicious.com/TotallyOwnYourBankAndCreditCardAccounts.zip">
    Click me, sucka!
</a>

然后此代码将为其打开文件保存对话框:

var clickEvent      = document.createEvent ('MouseEvents');
var firstZipFile    = document.querySelector ("a[href*='.zip']");

clickEvent.initEvent ('click', true, true);
firstZipFile.dispatchEvent (clickEvent);


选项 2,GM 和您自己的服务器应用程序:

Greasemonkey 可以使用 GM_xmlhttpRequest()将文件发送到您的网络应用程序——您必须编写。然后,网络应用程序可以自动将文件保存到服务器。您可以将本地计算机设置为服务器。

有关此方法的更多帮助,read this然后问一个新问题。


方案3,自己写FF扩展(附加):

如果您决定采用 Firefox 附加组件路线,请参阅 "MDN: Downloading files" .

有关此方法的更多帮助,read this然后问一个新问题。

关于javascript - 如何制作 Greasemonkey 脚本来自动下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8273337/

相关文章:

javascript - 检查 Gmail 按钮的 javascript 调用

javascript - 每次我在 Firefox 中打开特定网站时如何执行 javascript?

java - 如何使用 Java REST 服务和数据流下载文件

java - 如何从服务器端下载文件到硬盘

java - 可恢复文件下载协议(protocol)

javascript - 必需的 `<select>` 输入错误地允许选择默认选项

javascript - 如何访问 this.context.router (ReactJS)

javascript - 如何制作 Accordion 效果?

javascript - 垂直平移 Google 柱形图

javascript - Greasemonkey if/else 带有日期的超时