質問

私の背景のスクリプト:

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

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

私のbrowser_actionのJavaScript:

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
  }); 
}); 
.

SendRequestコールバックの 'collection'引数を上記のコメントで述べたように、backbone.collectionではなく通常のJS配列であることがわかりました。

これは、クロムによって採取された抑制アーチファクト/セキュリティ対策ですか?SendRequestを介してBackbone.Collectionを渡す方法はありますか?

役に立ちましたか?

解決

onRequestのドキュメントsendResponseはJSON-IFACELオブジェクトである必要があるため、コレクションのtoJSONメソッドが呼び出されていると仮定しています。

ターゲットスクリプトにコレクション定義がある場合は、同じデータを持つ新しいオブジェクトをインスタンス化できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top