Chrome Bookmarks API - 使用“移动”在同一文件夹中重新排序书签

Joh*_*olu 5 bookmarks google-chrome google-chrome-extension

文档

chrome.bookmarks.move(string id, object destination, function callback)
Moves the specified BookmarkTreeNode to the provided location

id ( string )
destination ( object )
    index ( optional integer )
    parentId ( optional string )
callback ( optional function )
chrome.bookmarks.move(string id, object destination, function callback)
Parameters
Run Code Online (Sandbox Code Playgroud)

API 在以下情况下按预期工作,

如果我将书签移动到不同的文件夹,到任何位置(索引) - 如果我在文件夹内移动书签并将书签向上移动 - 即到新索引小于当前索引的位置 -

API 不起作用 - 当 -

如果我在文件夹中移动书签(即 parentId 相同)并将书签向上移动 - 即到新索引大于当前索引的位置

书签的最终位置是上面的一个位置,而不是我想要的位置。

例如 -

api 没有问题如果我将书签移到上方(新索引 < 当前索引),即 - 如果我在索引 3 处有一个书签并且想要将它移到上面,即索引 1,这可以正常工作。

但是,如果我将书签移动到下方(新索引 > 当前索引),即 - 如果我在索引 1 处有一个书签,并且想将其移动到下方,即索引 3 书签被放置在 2 处,即 (3-1) =(新索引 - 1)

我们可以使用 'move' api 对同一文件夹中的书签重新排序吗?我是这么认为的,因为我们可以使用它,因为 'destination' 对象中的 'parentId' 是可选的。

谢谢。

cma*_*ann 3

尝试这个:

if(oldIndex < newIndex) newIndex++;
chrome.bookmarks.move(id, {index: newIndex});
Run Code Online (Sandbox Code Playgroud)

  • 您好,2019 年。我可以确认 OP 的问题仍然存在,并且此解决方法似乎运行良好。老实说,对我来说,这似乎是书签 API 上的一个错误。 (3认同)