topSites.get()

獲取包含使用者經常訪問和最近訪問的頁面的資訊的陣列。

瀏覽器會保留使用者經常訪問和最近訪問的頁面列表。它們使用此列表來幫助使用者輕鬆返回這些地方。例如,Firefox 預設會在“新標籤頁”中提供最常訪問頁面的列表。

為了確定列表中顯示哪些頁面以及它們的顯示順序,瀏覽器會結合“頻率”(使用者訪問頁面的次數)和“最近性”(使用者最近訪問頁面的時間)。

然後,瀏覽器可能會對此列表應用進一步的過濾,然後再將其呈現給使用者。例如,在 Firefox 中,“新標籤頁”僅為每個域名列出一個頁面,並且使用者可以阻止頁面出現在列表中。

topSites.get() API 使擴充套件程式能夠訪問此列表。如果不帶任何選項呼叫,它將提供經過過濾的頁面列表,即“新標籤頁”中顯示的那個。但是,透過提供各種選項,擴充套件程式可以獲取未經過濾的頁面列表。

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

要使用 topSites API,您必須擁有“topSites”API 許可權

語法

js
let gettingTopSites = browser.topSites.get(
    options  // object
)

引數

options

object。用於修改返回的頁面列表的選項。這可能包含以下任何屬性:

includeBlocked 可選

Boolean。包含使用者已從“新標籤頁”中移除的頁面。預設為 false

includeFavicon 可選

Boolean。在結果中包含圖示(favicon),對於有可用圖示的頁面。預設為 false

includePinned 可選

Boolean。包含使用者已固定到 Firefox 新標籤頁的網站。預設為 false

includeSearchShortcuts 可選

Boolean。包含出現在 Firefox 新標籤頁上的搜尋快捷方式。預設為 false

limit 可選

Integer。要返回的頁面數量。這必須是介於 1 到 100(含)之間的數字。預設為 12。

newtab 可選

Boolean。如果包含,則該方法返回使用者開啟新標籤頁時返回的頁面列表。如果包含且設定為 true,則該方法將忽略 limitincludeFavicon 以外的所有其他引數。預設為 false

onePerDomain 可選

Boolean。每個域名只包含一個頁面。預設為 true

返回值

一個 Promise。此 Promise 將以一個 MostVisitedURL 物件陣列(對應於瀏覽器“新標籤頁”中列出的每個頁面)來 fulfilled。如果發生錯誤,Promise 將以錯誤訊息拒絕。

示例

此程式碼記錄“新標籤頁”中所有頁面的標題和 URL。

js
function logTopSites(topSitesArray) {
  for (const topSite of topSitesArray) {
    console.log(`Title: ${topSite.title}, URL: ${topSite.url}`);
  }
}

function onError(error) {
  console.error(error);
}

browser.topSites.get().then(logTopSites, onError);

此程式碼記錄所有熱門頁面的標題和 URL,包括使用者已阻止的頁面,並且可能包含同一域名的多個頁面。

js
function logTopSites(topSitesArray) {
  for (const topSite of topSitesArray) {
    console.log(`Title: ${topSite.title}, URL: ${topSite.url}`);
  }
}

function onError(error) {
  console.error(error);
}

browser.topSites
  .get({
    includeBlocked: true,
    onePerDomain: false,
  })
  .then(logTopSites, onError);

擴充套件程式示例

瀏覽器相容性

注意:此 API 基於 Chromium 的 chrome.topSites API。