Chrome Extension backbone.jsコレクションを通常のJavaScriptアレイに変換します
-
12-12-2019 - |
質問
私の背景のスクリプト:
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
メソッドが呼び出されていると仮定しています。
ターゲットスクリプトにコレクション定義がある場合は、同じデータを持つ新しいオブジェクトをインスタンス化できます。
所属していません StackOverflow