說明
使用 chrome.bookmarks API 建立、整理及操作書籤。另請參閱覆寫頁面,瞭解如何建立自訂書籤管理工具頁面。
 
  權限
bookmarks如要使用書籤 API,必須在擴充功能資訊清單中聲明「bookmarks」權限。 例如:
{
  "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 存放區安裝 Bookmarks API 範例。
類型
BookmarkTreeNode
書籤樹狀結構中的節點 (書籤或資料夾)。子節點會在上層資料夾中排序。
屬性
- 
    孩子BookmarkTreeNode[] 選用 這個節點的子項排序清單。 
- 
    dateAdded號碼 選填 這個節點的建立時間,以 Epoch 紀元時間 ( new Date(dateAdded)) 起算的毫秒數表示。
- 
    dateGroupModified號碼 選填 這個資料夾的內容上次變更時間,以自記錄週期後的毫秒數表示。 
- 
    dateLastUsed號碼 選填 Chrome 114 以上版本上次開啟這個節點的時間,以從 Epoch 紀元時間算起的毫秒數表示。無法為資料夾設定。 
- 
    folderTypeFolderType 選填 Chrome 134 以上版本如果有的話,這個資料夾是由瀏覽器新增,使用者或擴充功能都無法修改。如果這個節點未設定 unmodifiable屬性,子節點可能會遭到修改。如果節點可由使用者和擴充功能修改 (預設),則會省略這項屬性。每個資料夾類型可能會有零個、一個或多個節點。資料夾可能會由瀏覽器新增或移除,但無法透過擴充功能 API 新增或移除。 
- 
    id字串 節點的專屬 ID。ID 在目前的設定檔中是專屬的,即使重新啟動瀏覽器,ID 仍有效。 
- 
    索引號碼 選填 這個節點在其上層資料夾中的位置 (以 0 為基準)。 
- 
    parentId字串 選填 上層資料夾的 id。根節點會省略這項資訊。
- 
    同步處理中布林值 Chrome 134 以上版本這個節點是否由瀏覽器與使用者的遠端帳戶儲存空間同步。這項功能可用於區分相同 FolderType的帳戶和僅限本機版本。現有節點的這項屬性值可能會變更,例如使用者動作造成的結果。注意:這會反映節點是否已儲存至瀏覽器的內建帳戶供應商。即使這個值為 false,節點仍可能透過第三方同步處理。 如果是受管理節點 ( unmodifiable設為true的節點),這個屬性一律為false。
- 
    title字串 節點顯示的文字。 
- 
    無法修改「managed」 
 選用指出這個節點無法修改的原因。 managed值表示這個節點是由系統管理員或受監護使用者的監護人設定。如果節點可由使用者和擴充功能修改 (預設),則會省略這項屬性。
- 
    網址字串 選填 使用者點選書籤後前往的網址。資料夾則不適用。 
BookmarkTreeNodeUnmodifiable
指出這個節點無法修改的原因。managed 值表示這個節點是由系統管理員設定。如果節點可由使用者和擴充功能修改 (預設),則會省略這項屬性。
值
「managed」 
 
CreateDetails
傳遞至 create() 函式的物件。
屬性
- 
    索引號碼 選填 
- 
    parentId字串 選填 預設為「其他書籤」資料夾。 
- 
    title字串 選填 
- 
    網址字串 選填 
FolderType
指出資料夾類型。
列舉
「bookmarks-bar」
 內容顯示在瀏覽器視窗頂端的資料夾。
「其他」 
 :在所有平台上的完整書籤清單中顯示的書籤。
「mobile」 
 使用者行動裝置上通常會顯示書籤,但可透過擴充功能或書籤管理工具修改。
「已管理」 
 如果系統管理員或受監護使用者的監護人已設定書籤,則可能會顯示這個頂層資料夾。
屬性
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
書籤寫入作業不再受 Chrome 限制。
值
1000000 
 
MAX_WRITE_OPERATIONS_PER_HOUR
書籤寫入作業不再受 Chrome 限制。
值
1000000 
 
方法
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
在指定 parentId 下建立書籤或資料夾。如果網址為 NULL 或遺失,則為資料夾。
參數
傳回
- 
            Promise<BookmarkTreeNode> Chrome 90 以上版本
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
擷取指定的 BookmarkTreeNode。
參數
- 
    idOrIdList字串 | [字串, ...字串 []] 單一字串值 ID,或字串值 ID 陣列 
傳回
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以上版本
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
擷取指定 BookmarkTreeNode ID 的子項。
參數
- 
    id字串 
傳回
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以上版本
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
擷取最近新增的書籤。
參數
- 
    numberOfItems數字 傳回的項目數量上限。 
傳回
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以上版本
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
從指定節點開始擷取書籤階層的一部分。
參數
- 
    id字串 要擷取子樹狀結構根節點的 ID。 
傳回
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以上版本
傳回
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以上版本
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
將指定的 BookmarkTreeNode 移至指定位置。
參數
- 
    id字串 
- 
    目的地物件 - 
    索引號碼 選填 
- 
    parentId字串 選填 
 
- 
    
傳回
- 
            Promise<BookmarkTreeNode> Chrome 90 以上版本
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
移除書籤或空白書籤資料夾。
參數
- 
    id字串 
傳回
- 
            Promise<void> Chrome 90 以上版本
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
遞迴移除書籤資料夾。
參數
- 
    id字串 
傳回
- 
            Promise<void> Chrome 90 以上版本
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
搜尋與指定查詢相符的 BookmarkTreeNode。以物件指定的查詢會產生符合所有指定屬性的 BookmarkTreeNode。
參數
- 
    查詢字串 | 物件 可以是與書籤網址和標題相符的字串和引號括住的詞組,也可以是物件。如果是物件,則可指定 query、url和title屬性,並產生與所有指定屬性相符的書籤。- 
    查詢字串 選填 一連串的字詞和加上引號的詞組,會與書籤網址和標題比對。 
- 
    title字串 選填 書籤的標題,必須完全一致。 
- 
    網址字串 選填 書籤的網址,必須完全相符。請注意,資料夾沒有網址。 
 
- 
    
傳回
- 
            Promise<BookmarkTreeNode[]> Chrome 90 以上版本
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
更新書籤或資料夾的屬性。請只指定要變更的屬性,未指定的屬性將維持不變。注意:目前僅支援「title」和「url」。
參數
- 
    id字串 
- 
    變更物件 - 
    title字串 選填 
- 
    網址字串 選填 
 
- 
    
傳回
- 
            Promise<BookmarkTreeNode> Chrome 90 以上版本
事件
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
書籤或資料夾變更時觸發。注意:目前只有標題和網址變更會觸發這項功能。
參數
- 
    callback函式 callback參數如下:(id: string, changeInfo: object) => void - 
    id字串 
- 
    changeInfo物件 - 
    title字串 
- 
    網址字串 選填 
 
- 
    
 
- 
    
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
當資料夾的子項因 UI 中的排序順序而變更順序時,就會觸發此事件。這不是因 move() 而呼叫。
參數
- 
    callback函式 callback參數如下:(id: string, reorderInfo: object) => void - 
    id字串 
- 
    reorderInfo物件 - 
    childIdsstring[] 
 
- 
    
 
- 
    
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
建立書籤或資料夾時觸發。
參數
- 
    callback函式 callback參數如下:(id: string, bookmark: BookmarkTreeNode) => void - 
    id字串 
 
- 
    
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
書籤匯入工作階段開始時觸發。在觸發 onImportEnded 前,昂貴的觀察程式應忽略 onCreated 更新。觀察員仍應立即處理其他通知。
參數
- 
    callback函式 callback參數如下:() => void 
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
書籤匯入工作階段結束時觸發。
參數
- 
    callback函式 callback參數如下:() => void 
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
書籤或資料夾移至其他上層資料夾時觸發。
參數
- 
    callback函式 callback參數如下:(id: string, moveInfo: object) => void - 
    id字串 
- 
    moveInfo物件 - 
    索引數字 
- 
    oldIndex數字 
- 
    oldParentId字串 
- 
    parentId字串 
 
- 
    
 
- 
    
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
移除書籤或資料夾時觸發。遞迴移除資料夾時,系統只會針對該資料夾觸發單一通知,不會針對其內容觸發通知。
參數
- 
    callback函式 callback參數如下:(id: string, removeInfo: object) => void - 
    id字串 
- 
    removeInfo物件 - 
    索引數字 
- 
    Chrome 48 以上版本
- 
    parentId字串 
 
- 
    
 
-