0

在我的后台脚本中:

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”参数原来是一个常规的 JS 数组,而不是 Backbone.Collection。

这是铬采取的消毒人工制品/安全措施吗?有没有办法通过 sendRequest 传递 Backbone.Collection?

4

1 回答 1

1

onRequest文档中它说参数 tosendResponse应该是 JSON-ifiable 对象,所以我假设toJSON正在调用 Collection 的方法,只留下数据。

如果您在目标脚本中有 Collection 定义,您可以使用相同的数据实例化一个新对象。

于 2012-05-20T11:18:38.200 回答