【问题标题】:Is writing to a file on the filesystem at all possible through chrome's content_scripts or extension background scripts?是否可以通过 chrome 的 content_scripts 或扩展后台脚本写入文件系统上的文件?
【发布时间】:2014-04-10 14:02:57
【问题描述】:

我想为 google chrome 创建一个扩展,它会定期将一些内容写入计算机文件系统中的文件。我已经搜索了一段时间的文档,但我找不到任何关于它的信息。是否可以从谷歌浏览器或铬扩展名写入文件?

【问题讨论】:

    标签: google-chrome google-chrome-extension chromium


    【解决方案1】:

    是,不是,“有点”。

    在 Chrome 应用程序的上下文中,chrome.fileSystem API 是可能的。

    在 Chrome 扩展程序的上下文中,无法访问现有文件。

    然而,并不是所有的希望都落空了。您可以使用 HTML5 的fileSystem API 维护沙盒读/写文件系统,如果需要为用户导出文件,可以让浏览器“下载”它。

    如果您有可能超过 5Mb,您可能需要声明 unlimitedStorage 权限。

    请参阅此问题以将文件导出给用户: Chrome Extension write to file system


    编辑:切换到打包应用模型意味着您的 GUI 工作方式的转变。如果您不能没有仅扩展的 UI 元素(如浏览器操作),则有两种可能的方法:

    1. 让应用程序和扩展程序通过onMessageExternal 相互通信
    2. 有一个扩展和一个本地主机通过Native Messaging 交谈。

    大锤警告,如果您想广泛分发您的扩展程序而不是为自己或内部使用编写它,这些方法会导致复杂化。

    【讨论】:

    • 我希望扩展自动定期写入,下载 de 文件违背了我的想法。是否可以从 chrome 打包的应用程序中获取选项卡的内容,或者从 content_script 向打包的应用程序发送消息?
    • @jaapz 我自己从未编写过打包的应用程序,但似乎它们确实以通常的方式支持内容脚本注入。您失去的是与浏览器集成的 UI,您需要构建自己的位于单独窗口中的 UI。
    • @jaapz 有一个例外,对于应用程序,您仍然可以集成上下文菜单。此外,您可以让扩展程序与应用程序对话,或让扩展程序与本地主机对话。
    • 您的意思是打包应用程序本身中的内容脚本注入?我想在浏览器的选项卡中加载一个内容脚本,将消息发送到打包的应用程序,然后该应用程序可以写入文件。这可能吗?
    • 我不明白为什么不这样做。相关app docs.
    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 2013-01-05
    • 2017-04-19
    相关资源
    最近更新 更多