bookmarks.onMoved

当书签或文件夹移动到不同的父文件夹或文件夹内的不同位置时触发。

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

语法

js
browser.bookmarks.onMoved.addListener(listener)
browser.bookmarks.onMoved.removeListener(listener)
browser.bookmarks.onMoved.hasListener(listener)

事件具有三个函数

addListener(listener)

向此事件添加侦听器。

removeListener(listener)

停止侦听此事件。listener 参数是要移除的侦听器。

hasListener(listener)

检查 listener 是否为此事件注册。如果正在侦听,则返回 true,否则返回 false

addListener 语法

参数

侦听器

当此事件发生时调用的函数。该函数传递以下参数

ID

字符串。已移动项目的 ID。

moveInfo

对象。包含有关移动的更多详细信息的对象。有关更多详细信息,请参阅 moveInfo 部分。

其他对象

moveInfo

父 ID

字符串。新的父文件夹。

索引

整数。此项目在其父级中的新索引。

旧父 ID

字符串。旧的父文件夹。

旧索引

整数。项目在其父级中的旧索引。

浏览器兼容性

BCD 表格仅在浏览器中加载

示例

js
function handleMoved(id, moveInfo) {
  console.log(`Item: ${id} moved`);
  console.log(`Old index: ${moveInfo.oldIndex}`);
  console.log(`New index: ${moveInfo.index}`);
  console.log(`Old folder: ${moveInfo.oldParentId}`);
  console.log(`New folder: ${moveInfo.parentId}`);
}

function handleClick() {
  browser.bookmarks.onMoved.addListener(handleMoved);
}

browser.browserAction.onClicked.addListener(handleClick);

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