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 语法

参数

listener

事件触发时调用的函数。该函数接收以下参数:

id

string。被移动项目的 ID。

moveInfo

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

附加对象

moveInfo

parentId

string。新的父文件夹。

index

integer。此项目在其父项中的新索引。

oldParentId

string。旧的父文件夹。

oldIndex

integer。此项目在其父项中的旧索引。

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
onMoved

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

示例

js
function handleMoved(id, moveInfo) {
  console.log(`项目:${id} 已移动`);
  console.log(`旧索引:${moveInfo.oldIndex}`);
  console.log(`新索引:${moveInfo.index}`);
  console.log(`旧文件夹:${moveInfo.oldParentId}`);
  console.log(`新文件夹:${moveInfo.parentId}`);
}

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

browser.browserAction.onClicked.addListener(handleClick);

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