web api instance method
ContentIndex: add() method
Limited availabilityAvailable in workers
The add() method of the
ContentIndex interface registers an item with the content index.
Syntax
add(contentDescription)
Parameters
contentDescription- : An
Objectcontaining the following data:-
id- : A unique
Stringidentifier.
- : A unique
-
title- : A
Stringtitle for the item. Used in user-visible lists of content.
- : A
-
description- : A
Stringdescription of the item. Used in user-visible lists of content.
- : A
-
url- : A
Stringcontaining the URL of the corresponding HTML document. Needs to be under the scope of the current service worker.
- : A
-
categoryOptional -
iconsOptional
-
- : An
Return value
Returns a Promise that resolves with undefined.
Exceptions
TypeError- : This exception is thrown in the following conditions:
- The service worker’s registration is not present or the service worker does not contain a
FetchEvent. - One of
id,title,descriptionorurlparameter are missing, not of typeString, or an emptyString. - The
urlparameter is not same-origin policy with theservice worker. - One of the items in
iconsare not an image type, or fetching one of the items iniconsfailed with a network error or decode error.
- The service worker’s registration is not present or the service worker does not contain a
- : This exception is thrown in the following conditions:
Examples
Here we’re declaring an item in the correct format and creating an asynchronous
function which uses the add method to register it with the
content index.
// our content
const item = {
id: "post-1",
url: "/posts/amet.html",
title: "Amet consectetur adipisicing",
description:
"Repellat et quia iste possimus ducimus aliquid a aut eaque nostrum.",
icons: [
{
src: "/media/dark.png",
sizes: "128x128",
type: "image/png",
},
],
category: "article",
};
// our asynchronous function to add indexed content
async function registerContent(data) {
const registration = await navigator.serviceWorker.ready;
// feature detect Content Index
if (!registration.index) {
return;
}
// register content
try {
await registration.index.add(data);
} catch (e) {
console.log("Failed to register content: ", e.message);
}
}
The add method can also be used within the
service worker scope.
// our content
const item = {
id: "post-1",
url: "/posts/amet.html",
title: "Amet consectetur adipisicing",
description:
"Repellat et quia iste possimus ducimus aliquid a aut eaque nostrum.",
icons: [
{
src: "/media/dark.png",
sizes: "128x128",
type: "image/png",
},
],
category: "article",
};
self.registration.index.add(item);
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.