bookmarks.search()
该 bookmarks.search()
函数搜索与给定查询匹配的书签树节点。
如果任何输入参数无效或类型不合适,此函数将抛出异常;请在 控制台 中查看错误消息。异常没有错误 ID,消息本身也可能发生变化,因此请不要编写尝试解释它们的代码。
这是一个返回 Promise
的异步函数。
语法
js
let searching = browser.bookmarks.search(
query // string or object
)
参数
查询
-
如果
query
是一个 字符串,它包含零个或多个以空格分隔的搜索词。如果每个搜索词是书签的 URL 或标题的子字符串,则匹配。匹配不区分大小写。为了使书签与查询匹配,必须匹配查询的所有搜索词。如果
query
是一个 对象,它包含零个或多个 3 个属性:query
、title
和url
,如下所述。为了使书签与查询匹配,必须匹配所有属性的词。
返回值
一个 Promise
,它将使用 bookmarks.BookmarkTreeNode
对象数组来履行,每个对象表示一个匹配的书签树节点。结果按节点创建的顺序返回。如果未找到结果,则数组为空。
由 bookmarks.search()
返回的 BookmarkTreeNodes
(即使是 "folder"
类型的节点)都缺少 children
属性。要获取完整的 BookmarkTreeNode
,请使用 bookmarks.getSubTree()
。
示例
此示例记录所有书签的 ID
js
function onFulfilled(bookmarkItems) {
for (const item of bookmarkItems) {
console.log(item.id);
}
}
function onRejected(error) {
console.log(`An error: ${error}`);
}
browser.bookmarks.search({}).then(onFulfilled, onRejected);
此示例查看当前活动标签是否已添加书签
js
function onFulfilled(bookmarkItems) {
if (bookmarkItems.length) {
console.log("active tab is bookmarked");
} else {
console.log("active tab is not bookmarked");
}
}
function onRejected(error) {
console.log(`An error: ${error}`);
}
function checkActiveTab(tab) {
browser.bookmarks.search({ url: tab.url }).then(onFulfilled, onRejected);
}
browser.browserAction.onClicked.addListener(checkActiveTab);
扩展示例
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
注意:此 API 基于 Chromium 的 chrome.bookmarks
API。本文档源自 Chromium 代码中的 bookmarks.json
。