The SharedWorker() constructor creates a SharedWorker object that executes the script at the specified URL. This script must obey the same-origin policy.

If the URL has an invalid syntax or if the same-origin policy is violated, a DOMException of type SECURITY_ERR is thrown.

Note: there is disagreement among browser manufacturers about whether a data URI is of the same origin or not. Although Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) and later accept data URIs, that's not the case in all other browsers.


var myWorker = new SharedWorker(aURL, options);


A DOMString representing the URL of the script the worker will execute. It must obey the same-origin policy.
options Optional
An object containing option properties that can set when creating the object instance. Available properties are as follows:
  • type: A DOMString specifying the type of worker to create. The value can be classic or module. If not specified, the default used is classic.
  • credentials: A DOMString specifying the type of credentials to use for the worker. The value can be omit, same-origin, or include. If not specified, or if type is classic, the default used is omit (no credentials required).
  • name: A DOMString specifying an identifying name for the SharedWorkerGlobalScope representing the scope of the worker, which is mainly useful for debugging purposes.

Return value

The created worker


  • SecurityError is raised if the document is not allowed to start workers
  • NetworkError is raised if the MIME type of one of the script is text/csv, image/*, video/*, or audio/*. It should always be text/javascript.
  • SyntaxError is raised if aURL cannot be parsed.


The following code snippet shows creation of a SharedWorker object using the SharedWorker() constructor and subsequent usage of the object:

var myWorker = new SharedWorker('worker.js');


first.onchange = function() {
  console.log('Message posted to worker');

second.onchange = function() {
  console.log('Message posted to worker');

myWorker.port.onmessage = function(e) {
  result1.textContent =;
  console.log('Message received from worker');

For a full example, see our Basic shared worker example (run shared worker.)


Specification Status Comment
HTML Living Standard
The definition of 'SharedWorker()' in that specification.
Living Standard  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support4 ?291010.65 — 6.1
name option Yes ?55 ? ? ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes ?3311.55.1 — 7.1 Yes
name option Yes Yes ?55 ? ? Yes

See also

Document Tags and Contributors

Last updated by: fscholz,