我實際上最終使用Chrome書籤搜索功能通過網址和標題搜索書籤,然後匹配以查看父ID是否匹配。有點棘手的方式來做到這一點,但它的工作原理!
function initBookmarks(){
//hit endpoint to get array of current bookmarks
var curBookmarks = [
{
id : "7",
parentId : "1",
index : 12,
title : "A programmatically generated bookmark",
url : "http://google.com"
},
{
id : "8",
parentId : "1",
index : 13,
title : "A programmatically generated bookmark 2",
url : "http://google.com"
}
];
if(curBookmarks.length > 0){
curBookmarks.forEach(function(bookmark,index){
console.log("searching.. ", {url : bookmark.url, title : bookmark.title});
chrome.bookmarks.search({url : bookmark.url, title : bookmark.title}, function(result){
console.log('result for search for is', result, bookmark.title);
var flagExists = false;
for(var i = 0; i < result.length; i++){
if(result[i].parentId === bookmark.parentId) flagExists = true;
}
if(!flagExists){
chrome.bookmarks.create({
parentId: bookmark.parentId,
index: bookmark.index,
title: bookmark.title,
url: bookmark.url
}, function(){
console.log('IVE CREATED!!!');
if(index === curBookmarks.length-1)
chrome.bookmarks.getTree(parseBookmarks);
});
}
else{
if(index === curBookmarks.length-1)
chrome.bookmarks.getTree(parseBookmarks);
}
})
})
}
else{
chrome.bookmarks.getTree(parseBookmarks);
}
}
一個有點瘋狂的想法:根據需要創建儘可能多的虛擬書籤,直到創建的書籤的ID是您需要的,然後刪除虛擬。要優化此過程,請將您的樹轉換爲平面數組並按ID排序。 – wOxxOm
我會說,而不是使用'get'使用'getTree'並且匹配url/title而不是id,因爲你無法控制這些id。 – BeardFist
感謝您的建議傢伙!我最終使用url和title進行搜索,然後檢查他們是否有相同的父ID。 – CaitlinHavener