기본적으로 북마크를 사용하는 Chrome 용 확장 프로그램을 작성하고 있습니다. 다음 코드는 팝업 html 파일에 있으며 bodyHelper() 함수가 본문 onload 이벤트에서 호출되고 있습니다. "TestFolder"라는 북마크 폴더가 있는지 확인해야합니다. 폴더가 있으면 폴더 내의 모든 책갈피를 제거합니다. 그렇지 않으면 빈 폴더가 만들어집니다.Google 크롬의 확장 변수에 일치하지 않는 변수 값
var rootFolder = undefined;
function bookmarkHelper() {
// Create TestFolder folder if it doesn't exist
chrome.bookmarks.getTree(function(tree) {
otherFolder = tree[0].children[1].children;
rootFolder = undefined;
for(i=0; i<otherFolder.length; i++) {
if(otherFolder[i].title == "TestFolder") {
rootFolder = otherFolder[i];
return;
}
}
chrome.bookmarks.create({'parentId': "2",
'title': 'TestFolder'},
function(newFolder) {});
});
// Remove all bookmarks from the rootFolder
for (i=0; i<rootFolder.children.length; i++)
chrome.bookmarks.remove(rootFolder.children[i].id);
}
이제 내 문제는 폴더에 북마크가 있으면 제거되지 않는다는 것입니다. 하지만 마지막 3 줄을
setTimeout(function(){
for (i=0; i<rootFolder.children.length; i++)
chrome.bookmarks.remove(rootFolder.children[i].id);
}, 100);
으로 변경하면 북마크가 삭제됩니다. 별도의 경우 팝업을 검사 할 때 원래 코드를 사용하여 책갈피를 삭제합니다. 이것은 매우 이상한 일이며, 무엇을해야할지 모릅니다. 일부 익명 - 함수 스레딩 유형 개념이 누락 되었습니까? AFAIK, JS는 단일 스레드이기 때문에.
도움 주셔서 감사합니다. :) –