什么是安全上下文?
安全上下文通常指的是通过 HTTPS 协议(而非 HTTP)加载的网页。为了保护用户隐私和安全,现代浏览器要求某些 API(例如 Clipboard API)只能在安全上下文中使用。这意味着,如果你在一个不安全的连接(即 HTTP)上使用 navigator.clipboard.writeText
,会导致 navigator.clipboard
为 undefined
,从而引发你提到的错误。
如何检查并解决?
-
确认使用 HTTPS:
- 确保你的网页是通过 HTTPS 协议加载的,而不是 HTTP。如果你在开发环境中使用 HTTP,可以考虑使用
localhost
,因为许多浏览器认为localhost
是一个安全的上下文,即使它使用 HTTP。 - 如果你已经在生产环境中部署了应用,请确保服务器配置正确,强制使用 HTTPS。
- 确保你的网页是通过 HTTPS 协议加载的,而不是 HTTP。如果你在开发环境中使用 HTTP,可以考虑使用
-
本地开发注意事项:
- 如果你在本地开发环境中使用 HTTP 协议进行调试,可以通过使用 localhost 或将项目配置为使用 HTTPS 进行开发。
-
浏览器的限制:
- 请注意,某些浏览器可能还有其他限制。例如,某些操作可能要求用户的明确交互(如点击按钮)才能调用
writeText
方法。
- 请注意,某些浏览器可能还有其他限制。例如,某些操作可能要求用户的明确交互(如点击按钮)才能调用