WorkerGlobalScope: location 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能仅在 Web Workers 中可用。

WorkerGlobalScope 接口中只读的 location 属性返回与 worker 关联的 WorkerLocation 对象。这是一个特定的位置对象,在浏览作用域中,它基本上是 Location 的一个子集,但适用于 worker。

一个 WorkerLocation 对象。

示例

如果在 localhost:8000 提供的文档中调用了以下内容

js
console.log(location);

在 worker 中(这基本上等同于 self.console.log(self.location);,因为这些是在 worker 作用域中调用的,可以通过 WorkerGlobalScope.self 引用),你将在控制台中看到一个 WorkerLocation 对象——类似如下内容

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

你可以使用这个 location 对象来返回关于文档位置的更多信息,就像你可能使用普通的 Location 对象一样。

注意: Firefox 在共享/服务 worker 中使用 console.log 时存在一个 bug(参见 Firefox bug 1058644),这可能会返回奇怪的结果,但这应该很快就会修复。

规范

规范
HTML
# dom-workerglobalscope-location-dev

浏览器兼容性

另见

WorkerGlobalScope