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。