bookmarks.update()

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

警告:如果您的扩展尝试更新书签树根节点中的书签,该调用将引发一个错误,消息为:“The bookmark root cannot be modified”(书签根目录无法修改),并且该书签将不会被更新。

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

语法

js
let updating = browser.bookmarks.update(
  id,                    // string
  changes                // object
)

参数

id

一个 string,指定要更新的书签或书签文件夹的 ID。

changes

一个 object,指定要应用的更改,其中包含以下字段的任意组合。未指定的任何项目都不会在引用的书签或文件夹中更改。

title 可选

一个 string,包含书签的新标题,或者如果 id 指向一个文件夹,则为文件夹的新名称。

url 可选

一个 string,提供书签的新 URL。

返回值

一个 Promise,它将以单个 bookmarks.BookmarkTreeNode 对象 fulfilled,该对象代表更新后的书签。如果找不到与 id 参数对应的书签项,则 Promise 被 rejected。

示例

此示例会将所有名为“MDN”的文件夹重命名为“Mozilla Developer Network (MDN)”。

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

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

function updateFolders(items) {
  for (const item of items) {
    // only folders, so skip items with a `url`
    if (!item.url) {
      browser.bookmarks
        .update(item.id, {
          title: "Mozilla Developer Network (MDN)",
        })
        .then(onFulfilled, onRejected);
    }
  }
}

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

浏览器兼容性

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