【问题标题】:Firefox add-on SDK / places/bookmarks API: How to get *all* bookmarks?Firefox 插件 SDK/places/bookmarks API:如何获取*所有*书签?
【发布时间】:2015-07-12 20:15:38
【问题描述】:

我正在尝试使用 Firefox 插件 SDK 中的 places/bookmarks API 访问书签。我可以查询书签,搜索一些给定的关键字等,但如果我只是尝试

search(
  { query: "" }
).on("end", function (results) {
  // results matching any bookmark that has "firefox"
  // in its URL, title or tag, sorted by title
  console.error(results);
}

我没有得到任何输出。这是预期的吗?我将如何进行全面查询?

(正如评论中正确提示的那样,对于少量搜索结果,上面的代码确实返回了所有书签。)

【问题讨论】:

  • 我遇到了同样的问题。看起来search() 存在大量书签的问题。限制似乎在 100 左右,因为 search({}, {count: 100}) 有效,但 search({}, {count: 150}) 无效。我正在尝试找出解决方法。
  • 谢谢,非常感谢!
  • @MichaelKonečný,你在这方面有什么进展吗?
  • 还没有,抱歉,我一直在忙其他事情。我环顾四周,认为可能可以查看 SDK 的源代码github.com/mozilla/addon-sdk/blob/master/lib/sdk/places/…,查看 search() 方法的实际作用并开发我自己的方法来获取书签。不过,还没有时间尝试任何东西。

标签: firefox sdk firefox-addon-sdk bookmarks


【解决方案1】:

你的代码是正确的:

search(
    { query: "" }
    ).on("end", function (bookmarks) {
        // do something
}

这正是它应该工作的方式。我正在使用相同的代码,并且已经测试过搜索确实检索到了我所有的大约 1500 个书签。

我的假设是您在测试时出错了。例如,使用 Firefox SDK 运行“cfx run”时,测试浏览器不包含您的书签,您必须先创建或导入书签。

【讨论】:

  • 感谢您的检查。您使用的是哪个版本的 SDK?
  • 我使用的是同一个版本。我重新运行了我的代码(使用较新的 Firefox 42.0),现在它可以按预期工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 2014-09-06
相关资源
最近更新 更多