<分区>
我转到该页面,它有 1 个 zip 文件,但我不知道名称,只知道它是一个 .zip
。
我希望 Greasemonkey 自动下载这个 zip,也许使用 flashgot 或其他东西?
所以我需要它在页面加载时激活,然后查找 *.zip
,并将其自动添加到下载中。
有什么想法吗?
<分区>
我转到该页面,它有 1 个 zip 文件,但我不知道名称,只知道它是一个 .zip
。
我希望 Greasemonkey 自动下载这个 zip,也许使用 flashgot 或其他东西?
所以我需要它在页面加载时激活,然后查找 *.zip
,并将其自动添加到下载中。
有什么想法吗?
最佳答案
Greasemonkey 本身无法自动将 zip 文件或其他任何内容保存到本地文件系统。
这是设计使然;允许用户/页面 JavaScript 保存文件是一个安全灾难。
您的选择:
GM 可以做的是弹出正确文件的文件保存对话框:
如果只点击一次,仍然需要用户交互。
例如,假设页面包含此链接:
<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);
Greasemonkey 可以使用 GM_xmlhttpRequest()将文件发送到您的网络应用程序——您必须编写。然后,网络应用程序可以自动将文件保存到服务器。您可以将本地计算机设置为服务器。
有关此方法的更多帮助,read this然后问一个新问题。
如果您决定采用 Firefox 附加组件路线,请参阅 "MDN: Downloading files" .
有关此方法的更多帮助,read this然后问一个新问题。
关于javascript - 如何制作 Greasemonkey 脚本来自动下载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8273337/