Как создать закладки Chrome и сохранить их в пользовательской папке в цикле? - PullRequest
0 голосов
/ 05 июня 2019

В настоящее время я делаю расширение для Chrome.
Используя некоторый код, я хотел бы закрыть некоторые вкладки кнопкой и сохранить URL-адрес вкладки в виде закладки Chrome в пользовательской папке.

Ниже приведен код, который закрывает вкладки исоздает закладку.
Чтобы закрыть вкладки, у меня есть цикл, который проверяет, совпадает ли идентификатор вкладки с идентификатором текущей вкладки.Если они совпадают, ничего не произойдет, но в противном случае он создаст закладку и сохранит ее в пользовательскую папку.

Мой код:

$('#hideTabs').click(function() {

 chrome.tabs.query({active:true,windowType:"normal", currentWindow: true},function(d){document.getElementById("Current-tab-id").innerHTML = d[0].id;})





chrome.tabs.query({}, function (tabs, bookmarkNode, bookmarkBar, BookmarkTreeNode ) {
    for (var i = 0; i < tabs.length; i++) {

console.log(tabs[i].id);
var CurrentTabId = document.getElementById('Current-tab-id').innerHTML;
console.log(CurrentTabId);
if(CurrentTabId == tabs[i].id) {

} else {

chrome.bookmarks.create({
                         'title': 'Extension bookmarks'},
                        function(newFolder) {
                            console.log("added folder: " + newFolder.title);
                            createBookmark(newFolder.id);
                        });

function createBookmark(extensionsFolderId) {
    chrome.bookmarks.create({'parentId': extensionsFolderId,
                             'title': 'Extensions doc',
                             'url': 'http://code.google.com/chrome/extensions'});
}
  chrome.tabs.remove(tabs[i].id, function callback(){})



}
    }
});





});

Проблема в том, что я хочу толькосоздать папку один раз после того, как пользователь нажал кнопку.
Затем я попытался добавить оператор IF, который выполняется только в том случае, если 'i' = 1.

 if (i === 1) {
chrome.bookmarks.create({
                         'title': 'Extension bookmarks'},
                        function(newFolder) {
                            console.log("added folder: " + newFolder.title);
                            createBookmark(newFolder.id);
                        });
}
function createBookmark(extensionsFolderId) {
    chrome.bookmarks.create({'parentId': extensionsFolderId,
                             'title': 'Extensions doc',
                             'url': 'http://code.google.com/chrome/extensions'});
}

Похоже, это должно работать, но функция обратного вызова function(newFolder) требуется для сохранения boolmarkв правильной папке.
Итак, мой вопрос: возможно ли создать папку только один раз, не затрагивая функцию обратного вызова?

...