bookmarks.update()

bookmarks.update() 方法更新书签的标题和 URL,或者更新书签文件夹的名称。

警告:如果你的扩展尝试更新书签树根节点中的书签,则调用将引发错误,并显示消息:“The bookmark root cannot be modified”,并且书签将不会被更新。

这是一个返回 Promise 的异步函数。

语法

js
let updating = browser.bookmarks.update(
  id,                    // 字符串
  changes                // 对象
)

参数

id

字符串,指定要更新的书签或书签文件夹的 ID。

changes

对象,指定要应用的更改,其中包含以下某些字段的组合。未指定的任何项目在引用的书签或文件夹中不会被更改:

title 可选

字符串,包含书签的新标题;或者,如果 id 引用文件夹,则包含文件夹的新名称。

url 可选

字符串,提供书签的新 URL。

返回值

一个 Promise,其会兑现已更新的书签的单个 bookmarks.BookmarkTreeNode 对象。如果无法找到与 id 参数对应的书签项,则该 Promise 将被拒绝。

示例

此示例将所有名为“MDN”的文件夹重命名为“Mozilla 开发者网络(MDN)”。

js
function onFulfilled(bookmarkItem) {
  console.log(bookmarkItem.title);
}

function onRejected(error) {
  console.error(`出现错误:${error}`);
}

function updateFolders(items) {
  for (const item of items) {
    // 仅限文件夹,所以跳过具有 `url` 的项目
    if (!item.url) {
      browser.bookmarks
        .update(item.id, {
          title: "Mozilla 开发者网络(MDN)",
        })
        .then(onFulfilled, onRejected);
    }
  }
}

browser.bookmarks.search({ title: "MDN" }).then(updateFolders, onRejected);

浏览器兼容性

BCD tables only load in the browser

备注:此 API 基于 Chromium 的 chrome.bookmarks API。该文档衍生自 Chromium 代码中的 bookmarks.json