Extensión de Chrome que convierte colecciones backbone.js en una matriz JavaScript normal
-
12-12-2019 - |
Pregunta
En mi guión de fondo:
var collection = Backbone.Collection.extend({});
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
sendResponse(new collection());
}
En el javascript de mi 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
});
});
Como se menciona en el comentario anterior, el argumento 'colección' en la devolución de llamada sendRequest resulta ser una matriz JS normal, en lugar de Backbone.Collection.
¿Es esto un artefacto de desinfección/medida de seguridad tomada por Chrome?¿Hay alguna forma de pasar Backbone.Collection mediante sendRequest?
Solución
Desde el onRequest
documentación dice que el argumento para sendResponse
debería ser un objeto JSON, así que supongo que el objeto de la Colección toJSON
Se llama al método, dejándolo solo con los datos.
Si tiene la definición de Colección en el script de destino, puede crear una instancia de un nuevo objeto con los mismos datos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow