Descrizione
Utilizza l'API chrome.bookmarks
per creare, organizzare e manipolare i preferiti. Consulta anche Override Pages, che puoi utilizzare per creare una pagina personalizzata di Gestione preferiti.

Autorizzazioni
bookmarks
Per utilizzare l'API Bookmarks, devi dichiarare l'autorizzazione "bookmarks" nel manifest dell'estensione. Ad esempio:
{
"name": "My extension",
...
"permissions": [
"bookmarks"
],
...
}
Concetti e utilizzo
Oggetti e proprietà
I preferiti sono organizzati in una struttura ad albero, in cui ogni nodo è un preferito o una cartella (a volte chiamata gruppo). Ogni nodo dell'albero è rappresentato da un oggetto bookmarks.BookmarkTreeNode.
Le proprietà BookmarkTreeNode
vengono utilizzate in tutta l'API chrome.bookmarks
. Ad esempio, quando chiami bookmarks.create, trasmetti il nodo padre del nuovo nodo (parentId
) e, facoltativamente, le proprietà index
, title
e url
del nodo. Consulta bookmarks.BookmarkTreeNode per informazioni
sulle proprietà che un nodo può avere.
Esempi
Il seguente codice crea una cartella con il titolo "Preferiti dell'estensione". Il primo argomento di
create()
specifica le proprietà della nuova cartella. Il secondo argomento definisce una funzione da
eseguire dopo la creazione della cartella.
chrome.bookmarks.create(
{'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
function(newFolder) {
console.log("added folder: " + newFolder.title);
},
);
Il seguente snippet crea un segnalibro che rimanda alla documentazione per gli sviluppatori relativa alle estensioni. Poiché non succederà nulla di grave se la creazione del segnalibro non va a buon fine, questo codice non si preoccupa di definire una funzione di callback.
chrome.bookmarks.create({
'parentId': extensionsFolderId,
'title': 'Extensions doc',
'url': 'https://developer.chrome.com/docs/extensions',
});
Per provare questa API, installa l'esempio di API Bookmarks dal repository chrome-extension-samples.
Tipi
BookmarkTreeNode
Un nodo (un preferito o una cartella) nell'albero dei preferiti. I nodi secondari sono ordinati all'interno della cartella principale.
Proprietà
-
bambini
BookmarkTreeNode[] facoltativo
Un elenco ordinato dei nodi secondari di questo nodo.
-
dateAdded
number (facoltativo)
Data di creazione di questo nodo, in millisecondi dall'epoca (
new Date(dateAdded)
). -
dateGroupModified
number (facoltativo)
Data e ora dell'ultima modifica dei contenuti di questa cartella, in millisecondi dall'epoca.
-
dateLastUsed
number (facoltativo)
Chrome 114+Data dell'ultima apertura di questo nodo, in millisecondi dall'epoca. Non impostato per le cartelle.
-
folderType
FolderType facoltativo
Chrome 134+Se presente, si tratta di una cartella aggiunta dal browser e che non può essere modificata dall'utente o dall'estensione. I nodi secondari possono essere modificati se questo nodo non ha impostato la proprietà
unmodifiable
. Omesso se il nodo può essere modificato dall'utente e dall'estensione (impostazione predefinita).Possono esserci zero, uno o più nodi di ogni tipo di cartella. Una cartella può essere aggiunta o rimossa dal browser, ma non tramite l'API Extensions.
-
id
stringa
L'identificatore univoco del nodo. Gli ID sono univoci all'interno del profilo corrente e rimangono validi anche dopo il riavvio del browser.
-
indice
number (facoltativo)
La posizione di questo nodo all'interno della cartella principale, a partire da 0.
-
parentId
stringa facoltativa
Il
id
della cartella principale. Omesso per il nodo principale. -
sincronizzazione in corso…
booleano
Chrome 134+Indica se questo nodo viene sincronizzato con lo spazio di archiviazione dell'account remoto dell'utente dal browser. Può essere utilizzato per distinguere tra le versioni dell'account e solo locali dello stesso
FolderType
. Il valore di questa proprietà può cambiare per un nodo esistente, ad esempio a seguito dell'azione dell'utente.Nota: questo valore indica se il nodo viene salvato nel provider di account integrato del browser. È possibile che un nodo venga sincronizzato tramite una terza parte, anche se questo valore è false.
Per i nodi gestiti (nodi in cui
unmodifiable
è impostato sutrue
), questa proprietà sarà semprefalse
. -
titolo
stringa
Il testo visualizzato per il nodo.
-
non modificabile
"managed"
facoltativoIndica il motivo per cui questo nodo non è modificabile. Il valore
managed
indica che questo nodo è stato configurato dall'amministratore di sistema o dal tutore di un utente supervisionato. Omesso se il nodo può essere modificato dall'utente e dall'estensione (impostazione predefinita). -
url
stringa facoltativa
L'URL a cui viene indirizzato un utente quando fa clic sul segnalibro. Omesso per le cartelle.
BookmarkTreeNodeUnmodifiable
Indica il motivo per cui questo nodo non è modificabile. Il valore managed
indica che questo nodo è stato configurato dall'amministratore di sistema. Omesso se il nodo può essere modificato dall'utente e dall'estensione (impostazione predefinita).
Valore
"managed"
CreateDetails
Oggetto passato alla funzione create().
Proprietà
-
indice
number (facoltativo)
-
parentId
stringa facoltativa
Per impostazione predefinita, viene selezionata la cartella Altri preferiti.
-
titolo
stringa facoltativa
-
url
stringa facoltativa
FolderType
Indica il tipo di cartella.
Enum
"bookmarks-bar"
La cartella il cui contenuto viene visualizzato nella parte superiore della finestra del browser.
"altro"
Preferiti visualizzati nell'elenco completo dei preferiti su tutte le piattaforme.
"mobile"
I preferiti sono generalmente disponibili sui dispositivi mobili dell'utente, ma possono essere modificati tramite l'estensione o nel Gestore dei preferiti.
"gestito"
Una cartella di primo livello che potrebbe essere presente se l'amministratore di sistema o il tutore di un utente supervisionato ha configurato i preferiti.
Proprietà
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Le operazioni di scrittura dei preferiti non sono più limitate da Chrome.
Valore
1.000.000
MAX_WRITE_OPERATIONS_PER_HOUR
Le operazioni di scrittura dei preferiti non sono più limitate da Chrome.
Valore
1.000.000
Metodi
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
): Promise<BookmarkTreeNode>
Crea un segnalibro o una cartella in base al parentId specificato. Se l'URL è NULL o mancante, si tratta di una cartella.
Parametri
-
segnalibro
Resi
-
Promise<BookmarkTreeNode>
Chrome 90+
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
): Promise<BookmarkTreeNode[]>
Recupera i nodi BookmarkTreeNode specificati.
Parametri
-
idOrIdList
stringa | [stringa, ...stringa[]]
Un singolo ID con valore stringa o un array di ID con valore stringa
Resi
-
Promise<BookmarkTreeNode[]>
Chrome 90+
getChildren()
chrome.bookmarks.getChildren(
id: string,
): Promise<BookmarkTreeNode[]>
Recupera i nodi secondari dell'ID BookmarkTreeNode specificato.
Parametri
-
id
stringa
Resi
-
Promise<BookmarkTreeNode[]>
Chrome 90+
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
): Promise<BookmarkTreeNode[]>
Recupera i preferiti aggiunti di recente.
Parametri
-
numberOfItems
numero
Il numero massimo di elementi da restituire.
Resi
-
Promise<BookmarkTreeNode[]>
Chrome 90+
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
): Promise<BookmarkTreeNode[]>
Recupera una parte della gerarchia dei preferiti, a partire dal nodo specificato.
Parametri
-
id
stringa
L'ID della radice del sottoalbero da recuperare.
Resi
-
Promise<BookmarkTreeNode[]>
Chrome 90+
getTree()
chrome.bookmarks.getTree(): Promise<BookmarkTreeNode[]>
Recupera l'intera gerarchia dei preferiti.
Resi
-
Promise<BookmarkTreeNode[]>
Chrome 90+
move()
chrome.bookmarks.move(
id: string,
destination: object,
): Promise<BookmarkTreeNode>
Sposta il nodo dell'albero dei preferiti specificato nella posizione fornita.
Parametri
-
id
stringa
-
destinazione
oggetto
-
indice
number (facoltativo)
-
parentId
stringa facoltativa
-
Resi
-
Promise<BookmarkTreeNode>
Chrome 90+
remove()
chrome.bookmarks.remove(
id: string,
): Promise<void>
Rimuove un preferito o una cartella di preferiti vuota.
Parametri
-
id
stringa
Resi
-
Promise<void>
Chrome 90+
removeTree()
chrome.bookmarks.removeTree(
id: string,
): Promise<void>
Rimuove in modo ricorsivo una cartella di preferiti.
Parametri
-
id
stringa
Resi
-
Promise<void>
Chrome 90+
search()
chrome.bookmarks.search(
query: string | object,
): Promise<BookmarkTreeNode[]>
Cerca BookmarkTreeNodes corrispondenti alla query specificata. Le query specificate con un oggetto producono BookmarkTreeNodes corrispondenti a tutte le proprietà specificate.
Parametri
-
query
stringa | oggetto
Una stringa di parole e frasi tra virgolette che vengono confrontate con i titoli e gli URL dei preferiti oppure un oggetto. Se un oggetto, le proprietà
query
,url
etitle
possono essere specificate e verranno prodotti segnalibri corrispondenti a tutte le proprietà specificate.-
query
stringa facoltativa
Una stringa di parole e frasi tra virgolette che vengono confrontate con i titoli e gli URL dei preferiti.
-
titolo
stringa facoltativa
Il titolo del segnalibro, che corrisponde esattamente.
-
url
stringa facoltativa
L'URL del preferito, che deve corrispondere esattamente. Tieni presente che le cartelle non hanno un URL.
-
Resi
-
Promise<BookmarkTreeNode[]>
Chrome 90+
update()
chrome.bookmarks.update(
id: string,
changes: object,
): Promise<BookmarkTreeNode>
Aggiorna le proprietà di un segnalibro o di una cartella. Specifica solo le proprietà che vuoi modificare; le proprietà non specificate rimarranno invariate. Nota:al momento sono supportati solo "title" e "url".
Parametri
-
id
stringa
-
modifiche
oggetto
-
titolo
stringa facoltativa
-
url
stringa facoltativa
-
Resi
-
Promise<BookmarkTreeNode>
Chrome 90+
Eventi
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Attivato quando un preferito o una cartella cambia. Nota:al momento, solo le modifiche al titolo e all'URL attivano questa operazione.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(id: string, changeInfo: object) => void
-
id
stringa
-
changeInfo
oggetto
-
titolo
stringa
-
url
stringa facoltativa
-
-
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Attivato quando l'ordine dei figli di una cartella è cambiato perché l'ordine è stato ordinato nella UI. Questa chiamata non viene eseguita a seguito di una chiamata a move().
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(id: string, reorderInfo: object) => void
-
id
stringa
-
reorderInfo
oggetto
-
childIds
string[]
-
-
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
Attivato quando viene creato un segnalibro o una cartella.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(id: string, bookmark: BookmarkTreeNode) => void
-
id
stringa
-
segnalibro
-
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
Attivato all'inizio di una sessione di importazione dei preferiti. Gli osservatori costosi devono ignorare gli aggiornamenti onCreated finché non viene attivato onImportEnded. Gli osservatori devono comunque gestire immediatamente le altre notifiche.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:() => void
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
Attivato al termine di una sessione di importazione dei preferiti.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:() => void
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
Attivato quando un preferito o una cartella viene spostato in un'altra cartella principale.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(id: string, moveInfo: object) => void
-
id
stringa
-
moveInfo
oggetto
-
indice
numero
-
oldIndex
numero
-
oldParentId
stringa
-
parentId
stringa
-
-
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
Attivato quando viene rimosso un segnalibro o una cartella. Quando una cartella viene rimossa in modo ricorsivo, viene attivata una sola notifica per la cartella e nessuna per i relativi contenuti.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(id: string, removeInfo: object) => void
-
id
stringa
-
removeInfo
oggetto
-
indice
numero
-
nodoChrome 48+
-
parentId
stringa
-
-