0

我想寫使用背景劇本和一個彈出窗口,跨通信的跨瀏覽器擴展的響應:使用chrome.runtime.sendMessage不會產生在火狐擴展

在後臺腳本:

class Listener{ 
    listen(cb){ 
     chrome.runtime.onMessage.addListener((transmission, sender, messageResponseFn) => { 
      cb(transmission, messageResponseFn); 
      return true; 
     }); 
    } 
} 

export default new Listener(); 

在彈出:

class Emitter{ 
    send(message, payload){ 
     return new Promise((resolve, reject) => { 
      chrome.runtime.sendMessage({ message, payload }, (responseMessage) => { 
       resolve(responseMessage); 
      }); 
     }); 
    } 
} 

export default new Emitter(); 

這將按預期在Chrome,但在Firefox中發送響應(在函數調用正確和不扔)永遠不會到達我的Emitter。我使用這個API錯了嗎? Firefox和Chrome之間有什麼區別,我不知道?從我在the docs中看到的runtime.sendMessage API應該完全支持。

FWIW,這裏有一個例子展示庫的問題:https://github.com/m90/firefox-webextension-issue

+1

可能與[bugfix](https://bugzilla.mozilla.org/show_bug.cgi?id=1202481)(FF44)相關。也可以嘗試詢問[Mozilla插件開發論壇](https://discourse.mozilla-community.org/c/add-ons/development)。 – wOxxOm

+0

好的,謝謝,也會試着在論壇上提問。 – m90

回答