2013-08-29 64 views
1

我有用於Mac Safari/fire Fox瀏覽器的NPAPI插件。插件有幾種方法,我可以從java腳本調用它。我想知道我是否可以通過實現關閉或卸載插件方法。我需要這個函數從瀏覽器/內存中卸載插件。使用腳本方法調用卸載NPAPI插件

回答

3

簡短回答:沒有。

較長的答案:不是真的。 可以從DOM中刪除對象標籤,這會導致實例被卸載。它不保證瀏覽器會卸載模塊,但它至少會讓你的實例脫離你的方式。

大多數想要這樣做的人都試圖在不關閉瀏覽器的情況下更新插件;你可以做到這一點,但你需要安裝與舊插件不同的文件名的新插件。我正在談論.plugin/bundle的文件名,而不是裏面的二進制文件。

如果你有~/Internet Plugins/MyPlugin-1.0.0.0一個插件,你刪除,換上新的插件在~/Internet Plugins/MyPlugin-1.0.0.1然後在javascript調用navigator.plugins.refresh(false);瀏覽器會發現新插件,當你實例化它,它會給你新的版本。儘管如此,該包必須有不同的命名。這是關鍵。

+0

你不能指望用戶從文件夾中刪除插件。如果我在網站和批量用戶中使用的插件正在使用它,請考慮更大的視角。 –

+0

爲什麼用戶需要從文件夾中刪除插件?我沒有說你需要離開舊的,只是新的名稱需要一個不同的名稱或者瀏覽器不會檢測到它。在Mac OS上,您可以完全刪除舊插件在它仍然在使用時的狀態 - 只要它不再被使用,它就會被刪除,但同時它會被刪除給所有未訪問過的插件。 – taxilian