The location read-only property of the WorkerGlobalScope interface returns the WorkerLocation associated with the worker. It is a specific location object, mostly a subset of the Location for browsing scopes, but adapted to workers.


var locationObj = self.location;


A WorkerLocation object.


If you called the following in a document served at localhost:8000


inside a worker (which would basically be the equivalent of self.console.log(self.location);, as these are being called on the worker scope, which can be referenced with WorkerGlobalScope.self), you will get a WorkerLocation object written to the console — something like the following:

WorkerLocation {hash: "", search: "", pathname: "/worker.js", port: "8000", hostname: "localhost"…}
  hash: ""
  host: "localhost:8000"
  hostname: "localhost"
  href: "http://localhost:8000/worker.js"
  origin: "http://localhost:8000"
  pathname: "/worker.js"
  port: "8000"
  protocol: "http:"
  search: ""
  __proto__: WorkerLocation

You could use this location object to return more information about the document's location, as you might do with a normal Location object.

Note: Firefox has a bug with using console.log inside shared/service workers (see bug 1058644), which may return strange results, but this should be fixed soon.


Specification Status Comment
HTML Living Standard
The definition of 'location' in that specification.
Living Standard

Browser compatibility

ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
locationChrome Full support 4Edge Full support 12Firefox Full support 3.5IE Full support YesOpera Full support 11.5Safari Full support 4WebView Android Full support 37Chrome Android Full support 40Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support 5.1Samsung Internet Android Full support 4.0


Full support
Full support

See also