bookmarks.move()

bookmarks.move() 方法将指定的 BookmarkTreeNode 移动到书签树中的指定目标位置。这使您可以将书签移动到新文件夹和/或文件夹内的位置。

警告:如果您的扩展尝试将书签移动到书签树根节点,则该调用将引发一条错误消息:“无法修改书签根目录”,并且移动操作将不会完成。

这是一个异步函数,它返回一个 Promise

语法

js
let movingBookmark = browser.bookmarks.move(
  id,                    // string
  destination           // object
)

参数

id

包含要移动的书签或文件夹 ID 的 string

destination

一个 object,用于指定书签的目标位置。此对象必须包含以下字段之一或两者

parentId 可选

一个 string,指定目标文件夹的 ID。如果省略此值,则书签将移动到其当前文件夹内的新的位置。

index 可选

一个基于 0 的索引,指定要在其中移动书签的文件夹中的位置。值为 0 将书签移动到文件夹的顶部。如果省略此值,则书签将放置在新父文件夹的末尾。

返回值

一个 Promise,它将使用单个 bookmarks.BookmarkTreeNode 对象来完成,该对象描述了已移动的节点。

如果找不到与 id 参数对应的节点,则 promise 将被拒绝并显示错误消息。

注意:如果您移动多个书签,因为此 API 是异步的,所以移动调用可能会以任何顺序处理。因此,在 BookmarkTreeNode 中返回的每个书签的索引值可能会更改或未知,直到所有移动调用都完成。如果与书签关联的索引对您的扩展很重要,那么 - 在移动多个书签时 - 扩展应等待每个 bookmarks.move 调用完成,然后再移动下一个书签。等待可确保与每个书签关联的索引不受并发执行的移动调用的影响,而原始调用正在进行中。

示例

此示例移动书签,使其成为其当前文件夹中的第一个书签。

js
function onMoved(bookmarkItem) {
  console.log(bookmarkItem.index);
}

function onRejected(error) {
  console.log(`An error: ${error}`);
}

let bookmarkId = "abcdefghijkl";

let movingBookmark = browser.bookmarks.move(bookmarkId, { index: 0 });
movingBookmark.then(onMoved, onRejected);

浏览器兼容性

BCD 表仅在启用了 JavaScript 的浏览器中加载。

注意:此 API 基于 Chromium 的 chrome.bookmarks API。此文档源自 Chromium 代码中的 bookmarks.json