HTTP/2 301
server: nginx
date: Thu, 24 Jul 2025 21:48:31 GMT
content-type: text/html
content-length: 162
location: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks/onChanged
strict-transport-security: max-age=60; includeSubDomains
via: 1.1 google
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 200
x-guploader-uploadid: ABgVH89hsjAE92uE9A_2KGnS_vjATXPIUc0S5Kl2CSCcUfAFiTTWBDNv76C5-se-ZM5ThR4y
x-goog-generation: 1753231477490879
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 91144
x-goog-meta-goog-reserved-file-mtime: 1753230409
x-goog-hash: crc32c=iqUXiQ==, md5=y4hcBSVc94Wlw4ASR0GTNg==
x-goog-storage-class: STANDARD
accept-ranges: none
expires: Thu, 24 Jul 2025 22:48:32 GMT
cache-control: public, max-age=3600
last-modified: Wed, 23 Jul 2025 00:44:37 GMT
etag: W/"cb885c05255cf785a5c3801247419336"
content-type: text/html
age: 1
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
alt-svc: clear
x-content-type-options: nosniff
strict-transport-security: max-age=63072000
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-EehWlTYp7Bqy57gDeQttaWKp0ukTTEUKGP44h8GVeik=' 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-EehWlTYp7Bqy57gDeQttaWKp0ukTTEUKGP44h8GVeik=' 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net mdn.github.io live-samples.mdn.mozilla.net live-samples.mdn.allizom.net *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-frame-options: DENY
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
x-cloud-trace-context: 3236b7a4103f1a9125e43810cb54de35
date: Thu, 24 Jul 2025 21:48:33 GMT
server: Google Frontend
via: 1.1 google
vary: Accept-Encoding
content-encoding: gzip
x-cache: miss
bookmarks.onChanged - Mozilla | MDN
Fired when there is a change to:
the title or URL of a bookmark
the name of a folder.
browser.bookmarks.onChanged.addListener(listener)
browser.bookmarks.onChanged.removeListener(listener)
browser.bookmarks.onChanged.hasListener(listener)
Events have three functions:
addListener(listener)
Adds a listener to this event.
removeListener(listener)
Stop listening to this event. The listener
argument is the listener to remove.
hasListener(listener)
Check whether listener
is registered for this event. Returns true
if it is listening, false
otherwise.
listener
The function called when this event occurs. The function is passed these arguments:
id
string
. ID of the item that changed.
changeInfo
object
. Object containing two properties: title
, a string containing the item's title, and url
, a string containing the item's URL. If the item is a folder, url
is omitted.
Note:
Multiple events may occur when a bookmark changes, and that changeInfo object may contain only the data that has changed, rather than all the data for the bookmark. In other words, if the url
for a bookmark changes, the changeInfo may only contain the new url
information.
function handleChanged(id, changeInfo) {
console.log(`Item: ${id} changed`);
console.log(`Title: ${changeInfo.title}`);
console.log(`URL: ${changeInfo.url}`);
}
function handleClick() {
browser.bookmarks.onChanged.addListener(handleChanged);
}
browser.browserAction.onClicked.addListener(handleClick);