Я хочу, чтобы передать объект из одного окна в другое
Вы находитесь на правильном пути с вашим кодом, но вы пытаетесь дать окно ссылку на объект слишком рано , Вы можете ждать его для загрузки:
var link = window.open('url');
link.onload = function() {
link.myVar = myOb;
};
load
события происходит довольно поздно в процессе, хотя, так что я бы, наверное, окно, который открываемый запросу объект, как только он может:
// In the window being opened:
var myVar = opener.obj;
Вместо того чтобы использовать переменную непосредственно, я бы, вероятно, использовать функцию для инкапсуляции, что:
// In the window being opened:
var myVar = opener.getObject();
Все, что будет работать только для окон в такое же происхождение, которое я предполагаю, если вы думаете о куках. Вы также можете использовать cross-window messaging, если окна не совпадают.
Просто для полноты:
можно записать объект в браузере куки?
Файлы cookie могут содержать только строки. Вы можете сериализовать свой объект с помощью JSON.stringify
или аналогичного, но я бы не использовал файлы cookie для обмена сообщениями в кросс-окнах.
Лучшее, что вы имеете в наличии есть 'JSON.stringify', но имейте в виду, что он не может сериализация вещи, как функции или некоторых сложных структур. Это хорошо в большинстве случаев. –