chrome.bookmarks
Description
使用 chrome.bookmarks
API 创建、组织和以其他方式操作书签。另请参阅覆盖页面,您可以使用它来创建自定义书签管理器页面。
Permissions
bookmarks
# Manifest
您必须在扩展清单中声明“书签”权限才能使用书签 API。例如:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
# Objects and properties(对象和属性)
书签被组织成一棵树,其中树中的每个节点要么是一个书签,要么是一个文件夹(有时称为一个组)。树中的每个节点都由 bookmarks.BookmarkTreeNode 对象表示。
BookmarkTreeNode
属性在整个 chrome.bookmarks
API 中使用。例如,当您调用 bookmarks.create 时,您将传入新节点的父节点 (parentId
),以及可选的节点index
, title
, and url
属性。有关节点可以具有的属性的信息,请参阅 bookmarks.BookmarkTreeNode。
注意:您不能使用此 API 在根文件夹中添加或删除条目。您也不能重命名、移动或删除特殊的“书签栏”和“其他书签”文件夹。
# Examples(实例)
以下代码创建一个标题为“扩展书签”的文件夹。 create()
的第一个参数指定新文件夹的属性。第二个参数定义了在创建文件夹后要执行的函数。
chrome.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
下一个代码段创建一个指向扩展的开发人员文档的书签。因为如果创建书签失败不会有什么不好的事情发生,这段代码就不用定义回调函数了。
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
有关使用此 API 的示例,请参阅基本书签示例。有关其他示例和查看源代码的帮助,请参阅示例。
Summary
Types
Properties
Methods
Events
Types
BookmarkTreeNode
书签树中的一个节点(书签或文件夹)。子节点在其父文件夹中排序。
PROPERTIES
children
BookmarkTreeNode[] optional
此节点的子节点的有序列表。
dateAdded
number optional
创建此节点时,自纪元以来的毫秒数 (
new Date(dateAdded)
)。dateGroupModified
number optional
此文件夹的内容上次更改的时间(自纪元以来的毫秒数)。
id
string
节点的唯一标识符。 ID 在当前配置文件中是唯一的,即使在浏览器重新启动后它们仍然有效。
index
number optional
此节点在其父文件夹中的基于 0 的位置。
parentId
string optional
父文件夹的
id
。省略根节点。title
string
为节点显示的文本。
unmodifiable
"managed" optional
指示此节点不可修改的原因。
managed
值表示该节点是由系统管理员或受监管用户的保管人配置的。如果用户和扩展程序可以修改节点(默认),则省略。url
string optional
用户单击书签时导航到的 URL。省略文件夹。
BookmarkTreeNodeUnmodifiable
Chrome 44+
指示此节点不可修改的原因。 managed
值表示该节点是由系统管理员配置的。如果用户和扩展程序可以修改节点(默认),则省略。
VALUE
"managed"
CreateDetails
传递给 create() 函数的对象。
PROPERTIES
index
number optional
parentId
string optional
默认为其他书签文件夹。
title
string optional
url
string optional
Properties
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Deprecated
书签写入操作不再受 Chrome 限制。
VALUE
1000000
MAX_WRITE_OPERATIONS_PER_HOUR
Deprecated
书签写入操作不再受 Chrome 限制。
VALUE
1000000
Methods
create
chrome.bookmarks.create( bookmark: CreateDetails, callback?: function, )
Promise
在指定的 parentId 下创建书签或文件夹。如果 url 为 NULL 或缺失,它将是一个文件夹。
PARAMETERS
bookmark
callback
function optional
The
callback
parameter looks like:(result: BookmarkTreeNode) => void
result
RETURNS
Promise<BookmarkTreeNode>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
get
chrome.bookmarks.get( idOrIdList: string | [string, ...string[]], callback?: function, )
Promise
检索指定的 BookmarkTreeNode(s)。
PARAMETERS
idOrIdList
string | [string, ...string[]]
单个字符串值 id,或字符串值 id 数组
callback
function optional
The
callback
parameter looks like:(results: BookmarkTreeNode[]) => void
results
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getChildren
chrome.bookmarks.getChildren(
id: string,
callback?: function,
)
Promise
检索指定 BookmarkTreeNode id 的子节点。
PARAMETERS
id
string
callback
function optional
The
callback
parameter looks like:(results: BookmarkTreeNode[]) => void
results
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getRecent
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
)
Promise
检索最近添加的书签。
PARAMETERS
numberOfItems
number
要返回的最大项目数。
callback
function optional
The
callback
parameter looks like:(results: BookmarkTreeNode[]) => void
results
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getSubTree
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
)
Promise
从指定节点开始检索书签层次结构的一部分。
PARAMETERS
id
string
要检索的子树根的 ID。
callback
function optional
The
callback
parameter looks like:(results: BookmarkTreeNode[]) => void
results
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
getTree
chrome.bookmarks.getTree(
callback?: function,
)
Promise
检索整个书签层次结构。
PARAMETERS
callback
function optional
The
callback
parameter looks like:(results: BookmarkTreeNode[]) => void
results
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
move
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
)
Promise
将指定的 BookmarkTreeNode 移动到提供的位置。
PARAMETERS
id
string
destination
object
index
number optional
parentId
string optional
callback
function optional
The
callback
parameter looks like:(result: BookmarkTreeNode) => void
result
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
remove
chrome.bookmarks.remove(
id: string,
callback?: function,
)
Promise
删除书签或空书签文件夹。
PARAMETERS
id
string
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
removeTree
chrome.bookmarks.removeTree(
id: string,
callback?: function,
)
Promise
递归删除书签文件夹。
PARAMETERS
id
string
callback
function optional
The
callback
parameter looks like:() => void
RETURNS
Promise<void>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
search
chrome.bookmarks.search(
query: string | object,
callback?: function,
)
Promise
搜索与给定查询匹配的 BookmarkTreeNodes。使用对象指定的查询会生成匹配所有指定属性的 BookmarkTreeNode。
PARAMETERS
query
string | object
与书签 URL 和标题匹配的一串单词和带引号的短语,或一个对象。如果是一个对象,则可以指定属性query
,
url, 和
title,并且将生成匹配所有指定属性的书签。query
string optional
与书签 URL 和标题匹配的一串单词和带引号的短语。
title
string optional
书签的标题;逐字匹配。
url
string optional
书签的网址;逐字匹配。请注意,文件夹没有 URL。
callback
function optional
The
callback
parameter looks like:(results: BookmarkTreeNode[]) => void
results
RETURNS
Promise<BookmarkTreeNode[]>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
update
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
)
Promise
更新书签或文件夹的属性。仅指定要更改的属性;未指定的属性将保持不变。注意:目前仅支持“title”和“url”。
PARAMETERS
id
string
changes
object
title
string optional
url
string optional
callback
function optional
The
callback
parameter looks like:(result: BookmarkTreeNode) => void
result
RETURNS
Promise<BookmarkTreeNode>
Pending
这仅在未指定
callback
参数时返回Promise
,并且使用 MV3+。Promise
中的类型与callback
的第一个参数相同。
Events
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
当书签或文件夹更改时触发。注意:目前,只有 title 和 url 更改会触发此操作。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, changeInfo: object) => void
id
string
changeInfo
object
title
string
url
string optional
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
当文件夹的子项由于在 UI 中排序而更改其顺序时触发。这不是作为 move() 的结果调用的。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, reorderInfo: object) => void
id
string
reorderInfo
object
childIds
string[]
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
创建书签或文件夹时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, bookmark: BookmarkTreeNode) => void
id
string
bookmark
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
当书签导入会话开始时触发。昂贵的观察者应该忽略 onCreated 更新,直到 onImportEnded 被触发。观察员仍应立即处理其他通知。
PARAMETERS
callback
function
The
callback
parameter looks like:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
当书签导入会话结束时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
当书签或文件夹移动到不同的父文件夹时触发。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, moveInfo: object) => void
id
string
moveInfo
object
index
number
oldIndex
number
oldParentId
string
parentId
string
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
删除书签或文件夹时触发。当一个文件夹被递归删除时,会为该文件夹触发一个通知,而不会为其内容触发一个通知。
PARAMETERS
callback
function
The
callback
parameter looks like:(id: string, removeInfo: object) => void
id
string
removeInfo
object
index
number
node
Chrome 48+
parentId
string
By.一粒技术服务