chrome.bookmarks

설명

chrome.bookmarks API를 사용하여 북마크를 생성, 정리, 기타 방식으로 조작합니다. 맞춤 북마크 관리자 페이지를 만드는 데 사용할 수 있는 페이지 재정의도 참조하세요.

별표를 클릭하면 북마크가 추가됩니다.
별표를 클릭하면 북마크가 추가됩니다.

권한

bookmarks

북마크 API를 사용하려면 확장 프로그램 매니페스트에서 '북마크' 권한을 선언해야 합니다. 예를 들면 다음과 같습니다.

{
  "name": "My extension",
  ...
  "permissions": [
    "bookmarks"
  ],
  ...
}

개념 및 사용법

객체 및 속성

북마크는 트리로 구성되며 트리의 각 노드는 북마크 또는 폴더(그룹이라고도 함)입니다. 트리의 각 노드는 bookmarks.BookmarkTreeNode 객체로 표시됩니다.

BookmarkTreeNode 속성은 chrome.bookmarks API 전체에서 사용됩니다. 예를 들어 bookmarks.create를 호출할 때 새 노드의 상위 요소 (parentId)와 선택적으로 노드의 index, title, url 속성을 전달합니다. 노드에 포함할 수 있는 속성에 관한 정보는 bookmarks.BookmarkTreeNode를 참고하세요.

다음 코드는 제목이 '확장 북마크'인 폴더를 만듭니다. create()의 첫 번째 인수는 새 폴더의 속성을 지정합니다. 두 번째 인수는 폴더가 생성된 후 실행될 함수를 정의합니다.

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

다음 스니펫은 확장 프로그램의 개발자 문서를 가리키는 북마크를 만듭니다. 북마크 생성에 실패해도 문제가 발생하지 않으므로 이 코드는 콜백 함수를 정의하지 않아도 됩니다.

chrome.bookmarks.create({
  'parentId': extensionsFolderId,
  'title': 'Extensions doc',
  'url': 'https://developer.chrome.com/docs/extensions',
});

이 API를 사용해 보려면 chrome-extension-samples 저장소의 bookmark API 예시를 설치하세요.

유형

BookmarkTreeNode

북마크 트리의 노드 (북마크 또는 폴더) 하위 노드는 상위 폴더 내에 정렬됩니다.

속성

  • 어린이

    BookmarkTreeNode[] 선택사항

    이 노드의 정렬된 하위 목록입니다.

  • dateAdded

    number 선택사항

    이 노드가 생성된 시간이며 에포크 이후 경과된 시간(밀리초)입니다(new Date(dateAdded)).

  • dateGroupModified

    number 선택사항

    이 폴더의 콘텐츠가 마지막으로 변경된 시간입니다(에포크 이후 밀리초 단위로 표시).

  • dateLastUsed

    number 선택사항

    Chrome 114 이상

    이 노드가 마지막으로 열린 시간입니다(에포크 이후 밀리초 단위로 표시). 폴더에 설정되지 않았습니다.

  • id

    string

    노드의 고유 식별자입니다. ID는 현재 프로필 내에서 고유하며 브라우저를 다시 시작한 후에도 유효합니다.

  • 색인

    number 선택사항

    상위 폴더 내에서 이 노드의 0 기반 위치입니다.

  • parentId

    문자열 선택사항

    상위 폴더의 id 루트 노드에는 생략됩니다.

  • title

    string

    노드에 대해 표시되는 텍스트입니다.

  • 수정 불가능한

     선택사항

    이 노드가 수정 불가능한 이유를 나타냅니다. managed 값은 이 노드가 시스템 관리자 또는 관리 대상 사용자의 관리자에 의해 구성되었음을 나타냅니다. 사용자와 확장 프로그램이 노드를 수정할 수 있는 경우 생략됩니다 (기본값).

  • url

    문자열 선택사항

    사용자가 북마크를 클릭하면 이동한 URL입니다. 폴더의 경우 생략됩니다.

BookmarkTreeNodeUnmodifiable

Chrome 44 이상

이 노드가 수정 불가능한 이유를 나타냅니다. managed 값은 이 노드가 시스템 관리자에 의해 구성되었음을 나타냅니다. 사용자와 확장 프로그램이 노드를 수정할 수 있는 경우 생략됩니다 (기본값).

CreateDetails

create() 함수에 전달되는 객체입니다.

속성

  • 색인

    number 선택사항

  • parentId

    문자열 선택사항

    기본값은 기타 북마크 폴더입니다.

  • title

    문자열 선택사항

  • url

    문자열 선택사항

속성

MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE

지원 중단됨

Chrome에서 더 이상 북마크 쓰기 작업을 제한하지 않습니다.

1000000

MAX_WRITE_OPERATIONS_PER_HOUR

지원 중단됨

Chrome에서 더 이상 북마크 쓰기 작업을 제한하지 않습니다.

1000000

방법

create()

프로미스
chrome.bookmarks.create(
  bookmark: CreateDetails,
  callback?: function,
)

지정된 parentId 아래에 북마크 또는 폴더를 만듭니다. url이 NULL이거나 없으면 폴더가 됩니다.

매개변수

반환 값

  • Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

get()

프로미스
chrome.bookmarks.get(
  idOrIdList: string|[string,...string[]],
  callback?: function,
)

지정된 bookmarkTreeNode를 검색합니다.

매개변수

  • idOrIdList

    문자열|[문자열,...문자열[]]

    단일 문자열 값 ID 또는 문자열 값 ID의 배열

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (results: BookmarkTreeNode[])=>void

반환 값

  • Promise<BookmarkTreeNode[]>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getChildren()

프로미스
chrome.bookmarks.getChildren(
  id: string,
  callback?: function,
)

지정된 bookmarkTreeNode ID의 하위 요소를 검색합니다.

매개변수

반환 값

  • Promise<BookmarkTreeNode[]>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getRecent()

프로미스
chrome.bookmarks.getRecent(
  numberOfItems: number,
  callback?: function,
)

최근에 추가된 북마크를 검색합니다.

매개변수

  • numberOfItems

    숫자

    반환할 최대 항목 수입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (results: BookmarkTreeNode[])=>void

반환 값

  • Promise<BookmarkTreeNode[]>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getSubTree()

프로미스
chrome.bookmarks.getSubTree(
  id: string,
  callback?: function,
)

지정된 노드에서 시작하여 북마크 계층 구조의 일부를 검색합니다.

매개변수

  • id

    string

    검색할 하위 트리의 루트 ID입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (results: BookmarkTreeNode[])=>void

반환 값

  • Promise<BookmarkTreeNode[]>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getTree()

프로미스
chrome.bookmarks.getTree(
  callback?: function,
)

전체 북마크 계층 구조를 검색합니다.

매개변수

반환 값

  • Promise<BookmarkTreeNode[]>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

move()

프로미스
chrome.bookmarks.move(
  id: string,
  destination: object,
  callback?: function,
)

지정된 bookmarkTreeNode를 제공된 위치로 이동합니다.

매개변수

  • id

    string

  • 연결 대상

    객체

    • 색인

      number 선택사항

    • parentId

      문자열 선택사항

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (result: BookmarkTreeNode)=>void

반환 값

  • Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

remove()

프로미스
chrome.bookmarks.remove(
  id: string,
  callback?: function,
)

북마크 또는 빈 북마크 폴더를 삭제합니다.

매개변수

  • id

    string

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    ()=>void

반환 값

  • Promise<void>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

removeTree()

프로미스
chrome.bookmarks.removeTree(
  id: string,
  callback?: function,
)

북마크 폴더를 재귀적으로 삭제합니다.

매개변수

  • id

    string

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    ()=>void

반환 값

  • Promise<void>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

프로미스
chrome.bookmarks.search(
  query: string|object,
  callback?: function,
)

지정된 쿼리와 일치하는 bookmarkTreeNodes를 검색합니다. 객체와 함께 지정된 쿼리는 지정된 모든 속성과 일치하는 bookmarkTreeNodes를 생성합니다.

매개변수

  • query

    문자열|객체

    북마크 URL 및 제목과 일치하는 단어와 따옴표로 묶인 구문 또는 객체 중 하나입니다. 객체인 경우 query, url, title 속성을 지정할 수 있으며 지정된 모든 속성과 일치하는 북마크가 생성됩니다.

    • query

      문자열 선택사항

      북마크 URL 및 제목과 일치하는 단어와 따옴표로 묶인 구문의 문자열입니다.

    • title

      문자열 선택사항

      북마크의 제목으로, 그대로 일치합니다.

    • url

      문자열 선택사항

      북마크의 URL이며 그대로 유지됩니다. 폴더에는 URL이 없습니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (results: BookmarkTreeNode[])=>void

반환 값

  • Promise<BookmarkTreeNode[]>

    Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

update()

프로미스
chrome.bookmarks.update(
  id: string,
  changes: object,
  callback?: function,
)

북마크 또는 폴더의 속성을 업데이트합니다. 변경할 속성만 지정합니다. 지정되지 않은 속성은 변경되지 않습니다. 참고: 현재 'title' 및 'url'만 지원됩니다.

매개변수

  • id

    string

  • 변경사항

    객체

    • title

      문자열 선택사항

    • url

      문자열 선택사항

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (result: BookmarkTreeNode)=>void

반환 값

  • Chrome 90 이상

    프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 동일한 함수 호출에 둘 다 사용할 수는 없습니다. 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

이벤트

onChanged

chrome.bookmarks.onChanged.addListener(
  callback: function,
)

북마크 또는 폴더가 변경되면 실행됩니다. 참고: 현재는 제목 및 URL 변경에서만 이 문제가 발생합니다.

매개변수

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (id: string,changeInfo: object)=>void

    • id

      string

    • changeInfo

      객체

      • title

        string

      • url

        문자열 선택사항

onChildrenReordered

chrome.bookmarks.onChildrenReordered.addListener(
  callback: function,
)

UI에서 정렬되는 순서로 인해 폴더의 하위 요소가 순서를 변경하면 실행됩니다. 이는 Move()의 결과로 호출되지 않습니다.

매개변수

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (id: string,reorderInfo: object)=>void

    • id

      string

    • reorderInfo

      객체

      • childIds

        문자열[]

onCreated

chrome.bookmarks.onCreated.addListener(
  callback: function,
)

북마크 또는 폴더가 생성되면 실행됩니다.

매개변수

onImportBegan

chrome.bookmarks.onImportBegan.addListener(
  callback: function,
)

북마크 가져오기 세션이 시작되면 실행됩니다. 비용이 많이 드는 관찰자는 onImportEnded가 실행될 때까지 onCreated 업데이트를 무시해야 합니다. 관찰자는 여전히 다른 알림을 즉시 처리해야 합니다.

매개변수

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    ()=>void

onImportEnded

chrome.bookmarks.onImportEnded.addListener(
  callback: function,
)

북마크 가져오기 세션이 종료되면 실행됩니다.

매개변수

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    ()=>void

onMoved

chrome.bookmarks.onMoved.addListener(
  callback: function,
)

북마크 또는 폴더를 다른 상위 폴더로 이동하면 실행됩니다.

매개변수

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (id: string,moveInfo: object)=>void

    • id

      string

    • moveInfo

      객체

      • 색인

        숫자

      • oldIndex

        숫자

      • oldParentId

        string

      • parentId

        string

onRemoved

chrome.bookmarks.onRemoved.addListener(
  callback: function,
)

북마크 또는 폴더가 삭제되면 실행됩니다. 폴더가 재귀적으로 삭제되면 폴더에 대해서는 단일 알림이 실행되고 해당 콘텐츠에 대해서는 알림이 실행되지 않습니다.

매개변수

  • 콜백

    기능

    callback 매개변수는 다음과 같습니다.

    (id: string,removeInfo: object)=>void

    • id

      string

    • removeInfo

      객체