如何在javascript中覆盖navigator.plugins?

如何在javascript中覆盖navigator.plugins?,javascript,plugins,overriding,Javascript,Plugins,Overriding,如何在javascript中覆盖navigator.plugins? 有一个网站使用withnavigator读取我的插件列表。插件,我不想让他们读取我的插件,我想向他们显示假插件列表。 我该怎么做 我知道这是重复的,但我对这个不满意: 对于javascript中的重写函数,我们可以如下操作: <script type="text/javascript"> window.DoStuff = function () { alert("bar"); //th

如何在javascript中覆盖navigator.plugins?
有一个网站使用withnavigator读取我的插件列表。插件,我不想让他们读取我的插件,我想向他们显示假插件列表。
我该怎么做

我知道这是重复的,但我对这个不满意:

对于javascript中的重写函数,我们可以如下操作:

<script type="text/javascript">
    window.DoStuff = function () {
        alert("bar");   //this is the override
    };

    function DoStuff() {
        alert("foo");   //this is the original, occuring later in the page
    };
</script>

window.DoStuff=函数(){
警报(“栏”);//这是覆盖
};
函数DoStuff(){
警报(“foo”);//这是原始的,发生在页面的后面
};
但是导航器插件呢?
下面是我们阅读这些插件列表的方式:

if (navigator.plugins && navigator.plugins.length) {
    for (var v = "", w = 0; w < navigator.plugins.length; w++) {
        var x = navigator.plugins[w].name; -1 != x.indexOf("Java") && (t = !0);
        v += x + "\r\n"
    }
 alert(v);
}
if(navigator.plugins&&navigator.plugins.length){
对于(var v=”“,w=0;w
正如您所见,该网站是一个恶意网站,出于某些原因,您希望了解已安装的插件。
如何绕过它们?

根据第一个答案编辑:
那么,我们如何用js函数更改它们的代码,并用主列表替换新的插件列表呢?
这样就不需要更改只读的window.navigator.plugins

根据,Window.navigator.plugins
属性是只读的,这可能意味着您无法更改它


Window.navigator属性是只读的,因此您可能会认为
Window.navigator.plugins
也是只读的,这可能意味着您无法更改它。我如何覆盖它们的js代码?是否要运行js函数来替换主插件列表?事实并非如此,只要可通过Object.defineProperty()函数进行配置,您就可以更改/覆盖每个只读值。@RobbendBiene-本机对象,如
plugins
,它返回类型为
pluginsArray
的对象,甚至不返回PropertyDescriptor,和是只读的,不能更改,即使使用仅适用于非本机对象的
defineProperty
。我还可以使用相同的方法向navigator.plugins添加属性object@Robbendebiene-当然,如果您只是公然用另一个对象覆盖整个对象,那么它是否为只读并不重要,因为您刚刚替换了它。这就是我所说的覆盖或更改属性,这是发问者提出的,你说这是不可能的,但也许我误解了这个问题。