在我的扩展程序中,我在chrome.bookmarks.onRemoved事件中有一个监听器。
当我的侦听器被调用时,它会传递父和索引,而不是已删除书签的图像。我无法弄清楚的是如何找出哪个书签被删除?
答案 0 :(得分:1)
快乐新闻。
chrome.bookmarks.onRemoved回调有'节点' PARAM。它包括删除的书签节点的详细信息。
您可以在Chrome canary版本48.0.2529.0中使用它。
答案 1 :(得分:0)
您无法使用chrome.bookmarks.get
API获取已移除的书签,因为它已被删除。我能想到的唯一解决方案是保留完整书签树的副本,并搜索已删除书签的ID。一个天真的实现将是:
var bookmarks = [];
function updateBookmarks()
{
chrome.bookmarks.getTree(function(results) { bookmarks = results; });
}
updateBookmarks();
chrome.bookmarks.onRemoved.addListener(function(id, removeInfo)
{
console.log("Removed bookmark");
console.log(findBookmarkWithId(bookmarks, id));
updateBookmarks();
});
function findBookmarkWithId(bookmarks, id)
{
if (bookmarks === null || typeof bookmarks === "undefined")
return null;
for (var i = 0; i < bookmarks.length; i++)
{
if (bookmarks[i].id === id)
return bookmarks[i];
var child = findBookmarkWithId(bookmarks[i].children, id)
if (child !== null)
return child;
}
return null;
}
// keep local copy up to date
chrome.bookmarks.onCreated.addListener(function(id, bookmark)
{
updateBookmarks();
});
chrome.bookmarks.onChanged.addListener(function(id, bookmark)
{
updateBookmarks();
});
// TO DO: deal with chrome.bookmarks.onImportBegan / onImportEnd