bookmarks.move()

bookmarks.move() 方法會將指定的 BookmarkTreeNode 移動到書籤樹中指定的目標位置。這允許您將書籤移動到新的資料夾和/或在資料夾內的特定位置。

警告: 如果您的擴充套件嘗試將書籤移動到書籤樹根節點,該呼叫將引發一條錯誤訊息:“The bookmark root cannot be modified”,並且移動將不會完成。

這是一個非同步函式,返回一個 Promise

語法

js
let movingBookmark = browser.bookmarks.move(
  id,                    // string
  destination           // object
)

引數

id

一個 string,包含要移動的書籤或資料夾的 ID。

destination

一個 object,指定書籤的目標位置。此物件必須包含以下一個或兩個欄位:

parentId 可選

一個 string,指定目標資料夾的 ID。如果省略此值,書籤將移動到其當前資料夾內的新位置。

index 可選

一個 0 基索引,指定要移動書籤到的資料夾內的位置。值為 0 會將書籤移動到資料夾的頂部。如果省略此值,書籤將放置在新父資料夾的末尾。

返回值

一個 Promise,該 Promise 將以一個 bookmarks.BookmarkTreeNode 物件 fulfilled,描述被移動的節點。

如果找不到與 id 引數對應的節點,Promise 將被拒絕並帶有錯誤訊息。

注意: 如果您移動多個書籤,由於此 API 是非同步的,移動呼叫可能會以任何順序處理。因此,在所有移動呼叫完成之前,返回的每個書籤的索引值 BookmarkTreeNode 可能會改變或未知。如果書籤關聯的索引對您的擴充套件很重要,那麼——在移動多個書籤時——擴充套件應該等待每個 bookmarks.move 呼叫完成,然後再移動下一個書籤。等待可確保每個書籤關聯的索引不受正在進行的原始呼叫期間併發執行的移動呼叫的影響。

示例

此示例將一個書籤移動到其當前資料夾中的第一個位置。

js
function onMoved(bookmarkItem) {
  console.log(bookmarkItem.index);
}

function onRejected(error) {
  console.log(`An error: ${error}`);
}

let bookmarkId = "abcdefghijkl";

let movingBookmark = browser.bookmarks.move(bookmarkId, { index: 0 });
movingBookmark.then(onMoved, onRejected);

瀏覽器相容性

注意: 此 API 基於 Chromium 的 chrome.bookmarks API。本文件源自 Chromium 程式碼中的 bookmarks.json