2015-12-20 24 views
0

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

所以我写这将包含在Chrome上的每个HTTP(S)回应:

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

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

enter image description here

但是,当我在控制台中手动输入delete navigator时,它的工作原理!

enter image description here

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

+1

你是从页面底部加载脚本吗? –

+0

是的,我也尝试过使用setTimeout()以防脚本冲突,也没有什么区别。 –

回答

0

尝试将window.navigator设置为另一个值。你可以使它成为一个空的数组或对象。

window.navigator = []; 

window.navigator = {}; 

无论哪种方式,存储在导航仪的数值应该重新定义后消失。

+0

我试过了,我试过设置一切...... window.navigator,window.navigator.plugins,设置为:{},[],new Object(),一切......重新分配的问题在那里没有内部setter方法,所以它不会允许任何类型的导航器对象的重新分配,即使在控制台中,它也会立即恢复为 –

+0

在这种情况下,您删除window.navigator的机会非常渺茫。根据我所看到的,在某些浏览器中重新定义它已成为可能,但似乎您的浏览器不支持这一点。 –