繁体   English   中英

如何从导航器对象中删除serviceWorker属性?

[英]How to remove the serviceWorker property from the navigator object?

有什么方法可以从导航器对象中完全删除serviceWorker属性? (因此表达式('serviceWorker' in navigator)为false。)

delete不起作用:

delete navigator.serviceWorker;
'serviceWorker' in navigator; // true

分配给undefined不会做任何事情(即使足够了):

navigator.serviceWorker = null;
'serviceWorker' in navigator; // true
navigator.serviceWorker === null; // false

Object.defineProperty也不起作用:

Object.defineProperty(navigator, "serviceWorker", { 
  configurable: true,
  value: undefined
});
'serviceWorker' in navigator; // true
navigator.serviceWorker === undefined; // true

(这样做的原因是为了使更新的浏览器的行为更像旧的浏览器进行测试等)

如果要使新浏览器的行为像旧的浏览器一样进行测试,则可以定义和使用新功能:

function areServiceWorkersSupported() {
  return 'serviceWorker' in navigator;
}

然后,在测试期间,您可以覆盖该函数。

navigator.serviceWorker是只读属性,因此不可更改,请检查此链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM