没有提示,将图像保存到硬盘?

时间:2012-11-29 13:30:44

标签: javascript firefox automation greasemonkey filesystem-access

我使用twitter。有些人的推文包含照片,我想保存它们。

我检查了ifttt,其中twitter不是触发器。因此,ifttt无法帮助我做到这一点。

一个想法可能是使用JavaScript。我使用Firefox并安装了Greasemonkey。我可以写一个在twitter网站上运行的Greasemonkey脚本(JavaScript)。点击“转推”链接或我的脚本添加的其他按钮后,我的脚本会检查推文的内容,找到照片的网址,然后将其保存到我的磁盘中。

一个问题是如何保存图像。我搜索了互联网。有些人使用win.document.execCommand("SaveAs"),它会显示“另存为”窗口。现在窗口显示,为什么不直接单击图像并选择手动保存?所以我不喜欢这种方法。

有什么建议吗?

6 个答案:

答案 0 :(得分:6)

使用Tampermonkey(Firefox或Chrome)时可以使用 他们添加了 GM_Download 命令 您可以像这样使用它:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http*://*/*
// @grant        GM_download
// ==/UserScript==


var arg = { url: "https://example.com/123456.jpg",
            name: "CustomFileName.jpg"
          };

GM_download(arg);

有关更多帮助和可用选项,请参阅Tampermonkey文档: https://tampermonkey.net/documentation.php

答案 1 :(得分:5)

Greasemonkey不能这样做,因为普通的javascript被禁止这样做(出于安全原因),the Greasemonkey API没有公开写文件的方法(和never will)。

以下是四种选择:

  1. 更新:切换到Tampermonkey which you should do anyway。然后,您可以将GM_download用作his answer中所述的 user136036

  2. 安装并使用the excellent DownThemAll add-on 更新: Firefox 57撤销对此类扩展的支持)。它仍然需要一次点击,但这总是比在不知情的情况下总是抓住一个文件更好。无论如何。

  3. 编写您自己的 addon 扩展名。来自FF附加组件的顶级大师之一的See this (now obsolete) answer for file-writing code。但“新”样式扩展仍然可以做到这一点。

  4. 使用XAMPP(或类似)在您的计算机上运行Web服务器。然后,您必须编写一个Web应用程序,除了传入的图像数据(或图像URL),并将图像保存到磁盘。

答案 2 :(得分:2)

JavaScript无法访问计算机的文件系统。

此处没有本机JS功能。否则,任何网站都可以将任何内容保存到您的PC上,这将导致您的PC立刻搞砸了。

答案 3 :(得分:1)

您将无法以您希望的方式执行此操作。如果浏览器允许网站将他们想要的任何内容直接保存到用户的计算机......那么你可以想象其后果。

答案 4 :(得分:1)

插件是正确的答案。如果您正在寻找框架结帐Firebreath,它可以为您提供跨平台功能,以及您可以想到的所有可能的浏览器,包括IE。它也很容易学习

答案 5 :(得分:0)

您可以在Firefox中轻松完成此操作,方法是选择从现在开始自动保存此选项而不是提示。我想这个选项也应该在Chrome中提供。

第一次下载新扩展名为Zip或jpg的文件时,浏览器可能会提示您保存此文件的位置。在这种情况下,您可以将位置设置为要下载文件的默认位置,并将复选框设置为自动下载此类文件。