This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.

The PermissionStatus.onchange event of the PermissionStatus interface is called whenever the PermissionStatus.state property changes.


PermissionStatus.onchange = function() { ... }
PermissionStatus.addEventListener('change', function() { ... })


navigator.permissions.query({name:'geolocation'}).then(function(permissionStatus) {
  console.log('geolocation permission state is ', permissionStatus.state);
  permissionStatus.onchange = function() {
    console.log('geolocation permission state has changed to ', this.state);


Specification Status Comment
Permissions API
The definition of 'onchange' in that specification.
Editor's Draft Initial definition.

Browser Support

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 43.0 46 (46) ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile Chrome for Mobile
Basic support No support 43.0 46.0 (46) ? ? ? ? 43.0

Document Tags and Contributors

 Contributors to this page: chrisdavidmills, jasonpang, poiru, jpmedley, keithjgrant
 Last updated by: chrisdavidmills,