有没有办法从导航器对象中完全删除serviceWorker
属性? (因此表达式('serviceWorker' in navigator)
为假。)
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
(这样做的原因是为了让新浏览器更像旧版浏览器进行测试等)。
答案 0 :(得分:3)
如果您想让新浏览器像旧版浏览器一样进行测试,您可以定义并使用新功能:
function areServiceWorkersSupported() {
return 'serviceWorker' in navigator;
}
然后,在测试期间,您可以覆盖该功能。
答案 1 :(得分:0)
navigator.serviceWorker
是一个只读属性,因此不可更改
检查此link