This article needs a technical review. How you can help.

Specifies an event listener to receive levelchange events. These events occur when the battery level is updated.


navigator.battery.onlevelchange = funcRef

Where battery is a BatteryManager object, and funcRef is a function to be called when the levelchange event occurs.


HTML Content

<div id="level">(battery level unknown)</div>
<div id="stateBaterry">(charging state unknown)</div>

JavaScript Content

navigator.getBattery().then(function(battery) {
    battery.onlevelchange = function(){
        document.querySelector('#level').textContent = battery.level;

            document.querySelector('#stateBaterry').textContent = "Charging time: " + (battery.chargingTime / 60);
            document.querySelector('#stateBaterry').textContent = "Discharging time: " + (battery.dischargingTime / 60);


Specification Status Comment
Battery Status API Candidate Recommendation Initial definition

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 39.0 10 (10) moz
16 (16)[1]
No support 25 No support
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support 40.0 10.0 (10) moz
16.0 (16)[1]
No support 25[2] No support 42.0[2]

[1] Disabled by default in Firefox 10.0, but can be enabled setting the preference dom.battery.enabled to true. Starting with Firefox 11.0, mozBattery is enabled by default. The Battery API is currently supported on Android, Windows, and Linux with UPower installed. Support for MacOS is available starting with Gecko 18.0 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15). Firefox also provide support for the deprecated navigator.battery.

[2] Values for BatteryManager.chargingTime and BatteryManager.dischargingTime are always equal to Infinity.

See also

Document Tags and Contributors

 Last updated by: Hugues-Antoine,