topSites.get()
獲取包含使用者經常訪問和最近訪問的頁面的資訊的陣列。
瀏覽器會保留使用者經常訪問和最近訪問的頁面列表。它們使用此列表來幫助使用者輕鬆返回這些地方。例如,Firefox 預設會在“新標籤頁”中提供最常訪問頁面的列表。
為了確定列表中顯示哪些頁面以及它們的顯示順序,瀏覽器會結合“頻率”(使用者訪問頁面的次數)和“最近性”(使用者最近訪問頁面的時間)。
然後,瀏覽器可能會對此列表應用進一步的過濾,然後再將其呈現給使用者。例如,在 Firefox 中,“新標籤頁”僅為每個域名列出一個頁面,並且使用者可以阻止頁面出現在列表中。
topSites.get() API 使擴充套件程式能夠訪問此列表。如果不帶任何選項呼叫,它將提供經過過濾的頁面列表,即“新標籤頁”中顯示的那個。但是,透過提供各種選項,擴充套件程式可以獲取未經過濾的頁面列表。
這是一個非同步函式,返回一個 Promise。
要使用 topSites API,您必須擁有“topSites”API 許可權。
語法
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,則該方法將忽略limit和includeFavicon以外的所有其他引數。預設為false。 onePerDomain可選-
Boolean。每個域名只包含一個頁面。預設為true。
返回值
一個 Promise。此 Promise 將以一個 MostVisitedURL 物件陣列(對應於瀏覽器“新標籤頁”中列出的每個頁面)來 fulfilled。如果發生錯誤,Promise 將以錯誤訊息拒絕。
示例
此程式碼記錄“新標籤頁”中所有頁面的標題和 URL。
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,包括使用者已阻止的頁面,並且可能包含同一域名的多個頁面。
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。