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);
示例扩展
浏览器兼容性
Loading…
备注:
此 API 基于 Chromium 的 chrome.bookmarks API。该文档衍生自 Chromium 代码中的 bookmarks.json。