The type
read-only property of the Client
interface indicates the type of client the service worker is controlling.
Syntax
var myClientType = client.type;
Value
A string, representing the client type. The value can be one of
"window"
"worker"
"sharedworker"
Example
// service worker client (e.g. a document)
function sendMessage(message) {
return new Promise(function(resolve, reject) {
// note that this is the ServiceWorker.postMessage version
navigator.serviceWorker.controller.postMessage(message);
window.serviceWorker.onMessage = function(e) {
resolve(e.data);
};
});
}
// controlling service worker
self.addEventListener("message", function(e) {
// e.source is a client object
e.source.postMessage("Hello! Your message was: " + e.data);
// Let's also post the type value back to the client
e.source.postMessage(e.source.type);
});
Specifications
Specification | Status | Comment |
Service WorkersThe definition of 'type' in that specification. | Working Draft | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Chrome
Full support 60 |
Edge
Full support ≤79 |
Firefox
Full support 54 |
IE
No support No |
Opera
Full support 47 |
Safari
No support No |
WebView Android
Full support 60 |
Chrome Android
Full support 60 |
Firefox Android
Full support 54 |
Opera Android
Full support 44 |
Safari iOS
No support No |
Samsung Internet Android
Full support 8.0 |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.'
- Experimental. Expect behavior to change in the future.
Client.type by Mozilla Contributors is licensed under CC-BY-SA 2.5.