私はChrome拡張機能に取り組んでおり、次の問題があります。あるイベントが発生すると、私のバックグラウンド ページは APIで新しいタブ (ページ) を作成しchrome.tabs.create
、オブジェクトを送信します。
送信されたオブジェクト (アイテムと呼ばれる) は、アイテムと呼ばれる特定のクラス (プロトタイプ) を持つオブジェクトのリストです。
ここにいくつかのコード:
// 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()
に newで使用すると、 itemsListbackground page
のオブジェクト タイプは正しく報告されますが、受信したアイテム リスト オブジェクトでは報告されません。newpage.html
background.html
文字列を介して手動でデータを手動でシリアル化し、手動で逆シリアル化newpage.html
することもできますが、これを実行してリスト内のオブジェクト タイプ (つまりアイテム) が失われないようにするためのより良い方法があるかどうかを知りたいです。