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

Dan*_*ner 5 javascript greasemonkey download

我去了页面,它有1个zip文件,但我不知道名字,除了它的一个.zip.

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

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

有任何想法吗?

Bro*_*ams 13

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

你的选择:

  1. 让Greasemonkey选择正确的链接并打开文件保存对话框(保存搜索工作并单击1次).
  2. 让GM将zip文件中继到您自己的服务器.您的服务器应用程序可以自动保存该文件.
    请注意,"服务器"可能是您自己的运行XAMPP之类的机器.
  3. 编写自己的Firefox附加组件.


选项1,仅限GM:

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

Windows,文件保存对话框

如果只需单击一次,仍然需要用户交互.

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

<a href="http://Suspicious.com/TotallyOwnYourBankAndCreditCardAccounts.zip">
    Click me, sucka!
</a>
Run Code Online (Sandbox Code Playgroud)

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

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

clickEvent.initEvent ('click', true, true);
firstZipFile.dispatchEvent (clickEvent);
Run Code Online (Sandbox Code Playgroud)


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

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

有关此方法的更多帮助,请阅读此内容然后提出新问题.


选项3,编写自己的FF扩展(附加组件):

如果您决定使用Firefox附加路由,请参阅"MDN:下载文件".

有关此方法的更多帮助,请阅读此内容然后提出新问题.