为什么有时在Chrome上未定义window.navigator.storage.estimate()

时间:2018-12-23 20:59:18

标签: javascript google-chrome local-storage

如果我从http://localhost提供我的应用程序,则可以在开发控制台中进行window.navigator.storage.estimate()

如果我使用http://example.com中的同一应用程序,其中example.com从我的/ etc / hosts解析为127.0.0.1,则window.navigator是未定义的。

怎么来?

(Chrome为71)

1 个答案:

答案 0 :(得分:0)

从MDN-> https://developer.mozilla.org/en-US/docs/Web/API/StorageEstimate/quota

似乎此功能仅在安全上下文中可用,也称为https://

但是Chrome似乎将localhost视为安全上下文,因此不需要https://。我认为这是因为本地主机通常用于开发目的,并且为本地域获取SSL证书可能很棘手。

位于https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts的更多信息确认file://localhost被认为是安全的。 if (window.isSecureContext)可用于测试状态。