Frage

In meinem Hintergrundskript:

var collection = Backbone.Collection.extend({});

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
  sendResponse(new collection());
}

Im Javascript meiner browser_action:

chrome.tabs.getSelected(null, function(tab) {
  chrome.extension.sendRequest({
    action: "someAction",
    tab: tab 
  },  
  function(collection) {
    // collection is now a JS array, rather than Backbone.Collection
  }); 
}); 

Wie im obigen Kommentar erwähnt, entpuppt sich das Argument 'collection' im sendRequest-Callback als reguläres JS-Array und nicht als Backbone.Sammlung.

Ist dies ein Desinfektionsartefakt / eine Sicherheitsmaßnahme von Chromium?Gibt es eine Möglichkeit, ein Rückgrat zu passieren.Abholung per Sendeanfrage?

War es hilfreich?

Lösung

Von der onRequest Dokumentation es sagt, dass das Argument zu sendResponse sollte ein JSON-ifiable Objekt sein, also gehe ich davon aus, dass die Sammlung toJSON die Methode wird aufgerufen, sodass Sie nur die Daten haben.

Wenn Sie die Sammlungsdefinition im Zielskript haben, können Sie ein neues Objekt mit denselben Daten instanziieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top