我知道,這兩個API用於注入Javascript腳本到網頁。在Firefox擴展開發中,loadSubScript和loadFrameScript有什麼不同?你會在哪種情況下使用它們?區別
Q
區別
1
A
回答
1
我假設你是問有關mozIJSSubscriptLoader.loadSubScript()和nsIChromeFrameMessageManager.loadFrameScript()。這是兩種完全不同的機制,唯一的相似之處在於兩者都可以加載和執行代碼。
mozIJSSubscriptLoader
並不意味着代碼加載到網頁 - 它的主要目標是動態加載擴展的部分。這是一個非常舊的機制,甚至早於JavaScript code modules。
loadFrameScript()
的目標是加載內容腳本,但最初爲支持多進程設置而引入(e10s project)。它將加載將在網頁上下文中以網頁特權運行的腳本。與加載它的代碼沒有直接的交互是可能的,只有消息傳遞。
0
大多數擴展沒有任何理由使用loadFrameScript。它的目標是remote debugging。
相關問題
遠程 - 是的。但是你爲什麼認爲它與調試有關呢?消息管理器最初是爲[多個瀏覽器進程需要進行通信]的設置而引入的(https://wiki.mozilla.org/Electrolysis)。 –
你是對的。不知何故,我將Marionette與調試混合在一起。 – paa