【问题标题】:TypeError: 'get ready' called on an object that does not implement interface ServiceWorkerContainer. on expanding navigator.serviceWorker objectTypeError:在未实现接口 ServiceWorkerContainer 的对象上调用了“准备就绪”。关于扩展 navigator.serviceWorker 对象
【发布时间】:2018-01-25 12:54:22
【问题描述】:

firefox version: 58.0

在firefox控制台输入navigator.serviceWorker,点击ServiceWorkerContainer展开。

然后得到一个错误:TypeError: 'get ready' called on an object that does not implement interface ServiceWorkerContainer.

这是什么意思?它是 Firefox 的错误吗?

【问题讨论】:

    标签: javascript firefox console service-worker firefox-developer-tools


    【解决方案1】:

    可能不是错误,但很有趣。

    当 devtools 试图扩展它时,除了访问 navigator.serviceWorker 自己的属性之外,它还尝试访问其原型的属性(在 devtools 中显示为具有特定于浏览器的 __proto__ 属性名称)。显然,这样做时,它给出的this 不是navigator.serviceWorker(我猜它是原型对象本身,例如Object.getPrototypeOf(navigator.serviceWorker)),并且原型上的ready getter 的实现预计会被调用在继承对象(松散地,“实例”)上,而不是原型本身。

    如果您在 Firefox 控制台中执行此操作,您会收到相同的错误:

    Object.getPrototypeOf(navigator.serviceWorker).ready
    

    没什么好担心的。 :-)

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 2014-05-22
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多