Когда вы сохраняете что-то в localStorage
, оно неявно преобразуется в строку, и если вы запустите console.log(peer.toString())
на первой странице, вы увидите вывод [object Object]
.
Из того, что я вижу, было бы лучше сохранить значения, необходимые для воссоздания однорангового объекта на второй странице, например,
localStorage.setItem('peerId', 'id');
localStorage.setItem('peerHost', '192.168.1.14');
localStorage.setItem('peerPort', '9002');
А потом на второй странице:
const peerId = localStorage.getItem('peerId');
...
const peer = new Peer(peerId, ...);
Вы также можете сериализовать данные, используя JSON.stringify()
и JSON.parse()
, что позволяет сериализовать объекты в строки и из них стандартным, хорошо поддерживаемым способом, например,
// On the first page
localStorage.setItem('peer', JSON.stringify(peer));
// On the second page
const peerData = localStorage.getItem('peer');
const peer = JSON.parse(peerData);
Тем не менее, есть некоторые ошибки, которые могут укусить вас при сериализации объектов с функциями / сложными данными в источниках Window, поэтому, если вы не знаете, что объекты были тщательно написаны с учетом перекрестного происхождения, я бы предложил сериализовать данные, необходимые для восстановить новый объект во втором окне.