2011-04-06 4 views
3

처음 5 개의 북마크 제목을 알려주는 간단한 예제를 만들려고합니다.크롬 북마크 API -

Google의 예제 코드를 사용하여 모든 노드를 순환하는 기본 방법을 만들 수 있는지 검색 쿼리를 제거했습니다. 다음 테스트 코드는 경고 테스트에 실패했으며 이유를 알지 못합니다.

function dumpBookmarks() { 
var bookmarkTreeNodes = chrome.bookmarks.getTree(
    function(bookmarkTreeNodes) { 
    (dumpTreeNodes(bookmarkTreeNodes)); 
    }); 
} 
function dumpTreeNodes(bookmarkNodes) { 
var i; 
for (i = 0; i < 5; i++) { 
    (dumpNode(bookmarkNodes[i])); 
} 
} 
function dumpNode(bookmarkNode) { 
alert(bookmarkNode.title); 
}; 

답변

10

그냥 콘솔에 당신의 bookmarkTreeNodes를 덤프하고 바로 문제가 무엇인지 볼 수 있습니다 :

var bookmarkTreeNodes = chrome.bookmarks.getTree(
    function(bookmarkTreeNodes) { 
    console.log(bookmarkTreeNodes); 
    }); 
} 

(콘솔이 chrome://extensions/로 이동 background.html 링크를 클릭 액세스 할 수)

반환 된 트리에는 빈 제목이있는 루트 요소가 하나 있습니다. 실제 북마크로 이동하려면 자녀를 트래버스해야합니다.

간단한 북마크 통과 (단지 모든 노드 통과) : DOM을 통과에 반대

function traverseBookmarks(bookmarkTreeNodes) { 
    for(var i=0;i<bookmarkTreeNodes.length;i++) { 
     console.log(bookmarkTreeNodes[i].title, bookmarkTreeNodes[i].url ? bookmarkTreeNodes[i].url : "[Folder]"); 

     if(bookmarkTreeNodes[i].children) { 
      traverseBookmarks(bookmarkTreeNodes[i].children); 
     } 

    } 
} 
+0

어떻게 물체를 통과 할 것인가? 거기에서 주위에 어떻게 도착하는지에 관해 명확히하지 마라! – Korak

+0

@Korak 당신의 목표는 무엇입니까? 너 거기서 찾으려고하는거야? – serg

+0

내가 궁극적으로 찾고있는 것은 사용자가 표시/선택하기 위해 트리에서 폴더의 선택 목록을 생성하는 것입니다. 비동기 함수가 단지 약간의 데이터를 가져 오도록 설정되었고 그것에 의해 어려움을 겪었던 방법을 알아 내야 시작할 것입니다. (grrr) – Korak