문제

내 배경 스크립트에서 :

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

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

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

SendRequest 콜백의 'collection'인수 위의 주석에서 언급 한 바와 같이 백본 .Collection 대신 일반 JS 배열로 밝혀졌습니다.

이것은 Chromium에 의해 취해진 복종 인공물 / 보안 조치입니다.SendRequest를 통해 Backbone.Collection을 통과하는 방법이 있습니까?

도움이 되었습니까?

해결책

onRequest 문서 논쟁에 대한 인수가 말합니다.sendResponse는 json-ifiable 객체 여야하므로 콜렉션의 toJSON 메소드가 호출되고 데이터 만 남겨두고 있다고 가정합니다.

대상 스크립트에서 수집 정의가있는 경우 동일한 데이터가있는 새 개체를 인스턴스화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top