📅  最后修改于: 2023-12-03 15:05:24.789000             🧑  作者: Mango
isSecureContext
是SVG Window对象的一个属性,它返回一个Boolean值,指示当前宿主环境是否是安全上下文。
安全上下文是指是通过HTTPS协议提供的,并且由某个安全原则保护的文档环境。安全原则的具体内容由宿主环境定义,通常包括:确保文档中的脚本、CSS和其他资源均来自受信任的服务器,并禁止非加密的HTTP请求。
if (window.isSecureContext) {
console.log('当前环境是安全上下文');
} else {
console.log('当前环境不是安全上下文');
}
除了SVG Window对象,isSecureContext属性还可以应用于其他宿主环境,如WorkerGlobalScope和ServiceWorkerGlobalScope对象,用来检测当前线程是否是安全上下文。
以下代码演示了如何使用isSecureContext属性检查当前文档是否在安全上下文中。
if (window.isSecureContext) {
// 当前文档在安全上下文中
const img = document.createElement('img');
img.src = 'https://example.com/image.jpg'; // 加载图片用https协议
document.body.appendChild(img);
} else {
// 当前文档不在安全上下文中,不允许加载非加密资源
console.error('当前环境不是安全上下文,不能加载非加密资源');
}
注意,当文档在非安全上下文中时,浏览器会禁止访问部分敏感API和功能,如获取用户媒体、对cookie的访问等。因此,在开发Web应用时,应尽可能使用HTTPS协议,以确保文档在安全上下文中运行,并尽量避免使用不安全的HTML和JavaScript特性。