2015-12-20 23 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的機會非常渺茫。根據我所看到的,在某些瀏覽器中重新定義它已成爲可能,但似乎您的瀏覽器不支持這一點。 –