gpt4 book ai didi

Javascript删除导航器对象

转载 作者:行者123 更新时间:2023-12-05 06:43:09 26 4
gpt4 key购买 nike

在 JavaScript window 对象中,有一个 navigator 对象,它有很多描述客户端浏览器的属性,其中一个是名为 plugins< 的数组。我试图通过在我查看的每个网页执行后注入(inject) JavaScript 来在我的个人浏览器(chrome)中禁用它。换句话说,我不希望我的插件暴露在我访问的网站上。

所以我写了这个包含在 Chrome 上的每个 HTTP(S) 响应中:

(function(window) {
delete window.navigator;
}(window));

但导航器仍然存在,因为在我测试它时在控制台中我看到:

enter image description here

但是,当我在控制台中手动键入 delete navigator 时,它起作用了!

enter image description here

那么为什么它不能与我的 JavaScript 一起工作?这不是脚本是否正在执行的问题,我已经确认它是,它只是没有删除导航器对象。有任何想法吗?我也试过将它设置为一个空对象,但没有任何东西可以解除它...

最佳答案

到目前为止,在 Chrome 中,window.navigator 和通过 window.navigator 公开的 api 似乎是只读的,简单地对它们调用 delete 不会有任何效果。

出于测试目的,我一直在使用 Object.defineProperty 来定义返回 null 的 getter。当页面上的脚本或 polyfill 试图测试特定浏览器 api 的存在时,这很有效:

Object.defineProperty(window, 'navigator', {
get() {
return null;
},
});

关于Javascript删除导航器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34378186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com