【问题标题】:Save images to hard disk WITHOUT prompt?将图像保存到硬盘没有提示?
【发布时间】:2012-11-17 14:16:21
【问题描述】:

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

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

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

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

有什么建议吗?

【问题讨论】:

    标签: javascript greasemonkey tampermonkey userscripts filesystem-access


    【解决方案1】:

    在使用 Tampermonkey 或 Violentmonkey(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);
    

    the official Tampermonkey documentation

    【讨论】:

    • 看起来很有希望,只要 GM_download 按预期工作。我稍后再试,谢谢。
    • CustomFileName.jpg的文件夹位置是什么
    【解决方案2】:

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

    这里有四种选择:

    1. 更新:切换到 Tampermonkeywhich you should do anyway。然后你可以像his answer中所说的user136036那样使用GM_download

    2. 安装并使用the excellent DownThemAll add-on更新: Firefox 57 取消了对这种扩展的支持)。它仍然需要单击一次,但在大多数情况下,这总比总是随意抓取文件要好。

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

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

    【讨论】:

    • 遗憾的是 GM 似乎没有实现GM_download。不过它适用于 TM for Firefox。
    • @brasofilo,不仅仅是没有实现。该问题被标记为 Bankruptcy,这意味着 Greasemonkey 的控制器已决定从不支持该功能。 Greasemonkey 4+ 是可憎的,也是可笑的。
    • Ahaaa... 暗示性标签名称顺便说一句,哈哈。 Donnow 紧靠内部运作,但界面明智的 GM 落后多年......
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        没有用于此的本机 JS 功能。否则,任何网站都可以将任何内容保存到您的 PC 上,这将导致您的 PC 立即变得混乱。

        【讨论】:

        • 那么..我应该写一个firefox插件来完成这项工作吗?看来工作越来越大了……
        • 这是一个选择,是的。
        • @BrockAdams:不一定。有一些插件可以自动将文件保存到磁盘。
        • 你说得对,这就是为什么我在评论前加上“IIRC”。
        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 2015-05-16
          • 1970-01-01
          • 2017-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-20
          • 1970-01-01
          相关资源
          最近更新 更多