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

string。被移动项的 ID。

moveInfo

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

额外对象

moveInfo

parentId

string。新的父文件夹。

index

integer。该项在其父文件夹中的新索引。

oldParentId

string。旧的父文件夹。

oldIndex

integer。该项在其父文件夹中的旧索引。

示例

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