Я работаю над расширением Chrome, и у меня следующая проблема.
Когда происходит определенное событие, моя фоновая страница создает новую вкладку (страницу) с chrome.tabs.create
API и отправляет объект.
Отправляемый Объект (называемые элементами) представляет собой список объектов, имеющих определенный класс (прототип) с именем Item.
Вот код:
// in background.html
chrome.tabs.create({index: 0, url: "results.html"}, function(tab) {
chrome.tabs.sendRequest(tab.id, {'items': itemsList}, function(response) {
console.log(response.farewall);
});
});
С другой стороны, на вновь созданной странице я получаю отправленные объекты
// newpage.html
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
console.dir(request.items);
sendResponse({});
}
);
Проблема в том, что при получении списка объектов в newpage.html
тип объекта теряется. Действительно, используя console.dir()
в новом background page
, тип объектов в itemsList сообщается правильно, но не в объекте списка полученных элементов в newpage.html
.
Я мог бы вручную сериализовать данные в background.html
вручную через строку и десериализовать вручную в newpage.html
, но я хотел бы знать, есть ли лучший способ позволить это и предотвратить тип объектов (а именно Пункт) в списке теряется.