bookmarks.search()
bookmarks.search()
函数用于搜索与给定查询匹配的书签树节点。
如果任何输入参数无效或不是适当的类型,则此函数会引发异常;请查看控制台获取错误消息。异常没有错误 ID,并且消息本身可能会更改,因此不要编写试图解释它们的代码。
这是一个返回 Promise
的异步函数。
语法
js
let searching = browser.bookmarks.search(
query // string 或 object
)
参数
query
-
如果
query
是一个字符串,它由零个或多个以空格分隔的搜索项组成。如果搜索项是书签的 URL 或标题的子字符串,则匹配。匹配不区分大小写。要使书签与查询匹配,必须匹配查询的所有搜索条件。如果
query
是一个对象,它由三个属性中的零个或多个组成:query
、title
和url
,描述如下。要使书签与查询匹配,必须匹配所有属性的项。
返回值
一个 Promise
,其会兑现 bookmarks.BookmarkTreeNode
对象数组,每个对象代表一个匹配的书签树节点。结果按节点创建的顺序返回。如果未找到结果,则数组为空。
即使是 "folder"
类型的节点,由 bookmarks.search()
返回的 BookmarkTreeNodes
缺少 children
属性。要获取完整的 BookmarkTreeNode
,请使用 bookmarks.getSubTree()
。
示例
这个示例记录所有书签的 ID:
js
function onFulfilled(bookmarkItems) {
for (const item of bookmarkItems) {
console.log(item.id);
}
}
function onRejected(error) {
console.log(`出现错误:${error}`);
}
browser.bookmarks.search({}).then(onFulfilled, onRejected);
这个示例查看当前活动选项卡是否已收藏:
js
function onFulfilled(bookmarkItems) {
if (bookmarkItems.length) {
console.log("活动选项卡已收藏");
} else {
console.log("活动选项卡未收藏");
}
}
function onRejected(error) {
console.log(`出现错误:${error}`);
}
function checkActiveTab(tab) {
browser.bookmarks.search({ url: tab.url }).then(onFulfilled, onRejected);
}
browser.browserAction.onClicked.addListener(checkActiveTab);
示例扩展
浏览器兼容性
BCD tables only load in the browser
备注:
此 API 基于 Chromium 的 chrome.bookmarks
API。该文档衍生自 Chromium 代码中的 bookmarks.json
。