Firefox Addon SDK 中的 HTML5 文件 API

2024-04-03

有没有办法在内容脚本中访问 Firefox addon sdk 中的 Html5 文件 api?

这是为了存储用户添加的单词及其含义所必需的。数据可能会变得很大,因此本地存储不是一个选择。

 window.requestFileSystem3 = window.requestFileSystem || window.webkitRequestFileSystem;

给我错误类型错误:window.requestFileSystem3 不是函数.

我问这个问题是因为我正在从 Google Chrome 扩展程序移植此代码,该扩展程序允许访问内容脚本中的文件 api。

其他问题

1)如果不允许 HTML5 File API 那么我应该使用file https://addons.mozilla.org/en-US/developers/docs/sdk/1.9/packages/api-utils/file.html module?

2) 是否文件模块允许访问文件系统上的任何文件,而不是仅访问沙盒访问文件系统的 Html5 文件 api?

3)假设我必须使用文件模块存储我的文件的最佳位置是什么(例如用户配置文件目录或扩展目录)以及如何在代码中获取此路径。

对于这个问题中的这么多子问题,我深表歉意。谷歌对这个话题没有太大帮助。

任何示例代码都会非常有帮助。


Firefox 尚不支持通过文件 API 写入文件,即使添加此功能,也可能只能通过网页访问,而不能通过扩展程序访问。换句话说:是的,如果您绝对需要写入文件,那么您应该使用低级 API。您希望将数据存储在用户配置文件目录中(没有扩展目录,您的扩展通常作为单个打包文件安装)。像这样的东西应该可以用来写入文件:

var file = require("sdk/io/file");
var profilePath = require("sdk/system").pathFor("ProfD");
var filePath = file.join(profilePath, "foo.txt");
var writer = file.open(filePath, "w");
writer.writeAsync("foo!", function(error)
{
  if (error)
    console.log("Error: " + error);
  else
    console.log("Success!");
});

以供参考:sdk/io/file https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/io/file.html, sdk/system https://addons.mozilla.org/en-US/developers/docs/sdk/latest/modules/sdk/system.html

你可以使用TextReader.read() or file.read()读取文件。不幸的是,Add-on SDK 似乎不支持异步文件读取,因此读取会阻塞 Firefox UI。唯一的选择是进口NetUtil https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/NetUtil.jsm and 文件工具 https://developer.mozilla.org/en-US/docs/JavaScript_code_modules/FileUtils.jsm通过 chrome 权威,像这样:

var {components, Cu} = require("chrome");
var {NetUtil} = Cu.import("resource://gre/modules/NetUtil.jsm", null);
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm", null);
NetUtil.asyncFetch(new FileUtils.File(filePath), function(stream, result)
{
  if (components.isSuccessCode(result))
  {
    var data = NetUtil.readInputStreamToString(stream, stream.available());
    console.log("Success: " + data);
  }
  else
    console.log("Error: " + result);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firefox Addon SDK 中的 HTML5 文件 API 的相关文章

  • 将 simple-prefs (SDK API) 与外部脚本和 postMessage 一起使用

    我正在使用 SDK 开发附加组件的新版本 针对 Gmail 并且需要为我的用户存储一些布尔首选项 为此 我想使用新的 simple prefs API 基于Mozilla 文档和这个堆栈溢出问题 我得到了一些东西 但我面临以下问题 1 我无
  • 将信息发送到上下文菜单的内容脚本

    我见过很多有关上下文菜单和双向通信的问题 看来我知道我的问题的答案 你不能 但无论如何我都会尝试 每个页面上都有一个由 page mod 创建的模态 div 该模式旨在当用户将鼠标悬停在文本节点中的单词上以提供单词的翻译时显示 这工作得很好
  • 本地化 (l10n):为我的 mozilla 插件设置默认语言

    我正在开发一个 Mozilla 插件并实现 l10n 我的问题是 如何为我的插件设置默认语言 当我的插件不支持语言时 它会切换到默认语言 当 Mozilla Firefox 的语言改变时 插件会改变它的语言环境吗 如何更改我的 Firefo
  • 摩根大通不工作

    我刚刚尝试过使用JPM https developer mozilla org en US Add ons SDK Tools jpm第一次 我什么也做不了 我的 index js 文件如下所示 const actionButton req
  • 使用文件系统作为离线播放的视频源

    我正在尝试向我的 HTML5 视频播放器添加离线功能 我正在尝试将文件作为 blob 写入 chrome 文件系统 然后从那里读取它们 我相信我遇到了一个问题 文件实际上并未被写入 只是文件名 由于我的以下代码目前已构成 因此它可以工作 但
  • 如何引用 Firefox 扩展的数据目录中的文件?

    我正在开发一个 Firefox 扩展 我需要将 JavaScript 从内容脚本注入到页面中 在我的 Chrome 扩展中 我做了以下操作 this initializeJplayerSupport function var script
  • 内容脚本匹配顶级域,如所有谷歌。*

    我希望我的内容脚本能够匹配所有谷歌域和特定页面 我知道这是不可能的 清单 json content scripts matches www google www youtube com readthedocs org 还有其他方法可以做到这
  • 如何在引导的 Firefox 扩展中实现 XPCOM 组件 (nsIContentPolicy)

    我有一个 Firefox 的引导扩展 现在我想实现 nsIContentPolicy XPCOM 组件 我写了一个组件模块代码 现在我想注册这个组件 我想注册组件的原因是我想将我的组件添加到nsICategoryManager addCat
  • 通过 jpm 生成签名 XPI 失败

    有问题签署附加组件 https wiki mozilla org Addons Extension Signing via jpm https developer mozilla org en US Add ons SDK Tools jp
  • 在chrome扩展中,如何使用内容脚本注入Vue页面

    我正在尝试实现 JSON 查看器 chrome 扩展 我已经用 Vue 实现了查看器 http treedoc org http treedoc org 现在的问题是如何使用 Chrome 扩展内容脚本注入 Vue 页面 I found 这
  • 如何在内容脚本和插件之间共享代码?

    我正在为 Firefox 4 编写一个扩展 我在名为的文件中有一些代码utils js我想从两个插件中调用它main js并从page mod的内容脚本 是否可以从两者引用同一个utils js 如果是这样 怎么办 编辑 更好的解决方案是允
  • 在新的 Jetpack API 中使用定位“面板”

    我现在使用新版本的 Jetpack API 它允许您使用 JS 框架为 Firefox 创建插件 面板 对象很容易使用 但我正在努力寻找一种定位它的方法 该文档简单地指出 Jetpack 面板 API https builder mozil
  • Firefox 扩展将 Javascript 数组作为对象发送

    我在将 JavaScript 数组传递给我正在编写的附加组件时遇到问题附加生成器 https builder addons mozilla org 为了进行通信 我使用事件并使用数组发送事件 但附加组件 内容脚本 获取一个对象 而不是数组
  • 尝试在 google chrome 中使用 HTML5 文件 api 时出现 FileError

    我试图使用 chrome 中的文件系统 API 创建一个文件 最初我尝试了如下持久存储 window requestFileSystem window requestFileSystem window webkitRequestFileSy
  • 使用 firefox addon sdk API 防止关闭选项卡

    我正在寻找一种方法来防止使用 firefox addon sdk 关闭选项卡 有办法实现吗 好的 这就是你想要的 以前的版本是为了看看我是否可以让 onbeforeunload 仅在选项卡关闭时触发 但我无法弄清楚 操作方法如下 我们重写了
  • 如何修复“require”的 WebStorm 警告“未解析的函数或方法”(Firefox Add-on SDK)

    我在用着WebStorm https www jetbrains com webstorm 7 for 火狐插件 SDK https developer mozilla org en US Add ons SDK发展 WebStorm 显示
  • 如何在 Firefox page-mod 中进行重定向?

    我正在尝试将我的 Google Chrome 扩展程序移植到 Firefox Add On SDK 并且我需要该扩展程序来过滤我网站中的页面并进行重定向 例如 如果用户打开 http example com special http exa
  • Addon SDK方式制作对话框

    使用 SDK 制作对话框的正确方法是什么 该对话框不是锚定到附加栏等 而是显示在屏幕中央 似乎没有任何 API 可以实现这一重要功能 我确实看到了windows utils has open但我有两个问题 打开对话框似乎需要 chrome
  • 如何使用addon SDK调用Firefox printpreview

    如何使用插件 SDK 调用 Firefox printpreview 最新 SDK 1 16 不包括 太感谢了 const getMostRecentBrowserWindow require sdk window utils var ch
  • 获取 Firefox 中扩展的附加 ID

    我想在浏览器选项卡中打开扩展作为普通的 html 页面 以便我可以使用 selenium WebDriver 自动化它 在 Firefox 中 可以使用这样的链接来完成 moz extension f1b30486 cd88 4319 bb

随机推荐