Передача данных окну-детенышу
Есть код
var win = window.open('url.php', 'mywindow', 'trata'); win.varName = 'Значение'; в большистве броузеров это работает, т.е. в документе 'url.php' в переменной varName я получаю значение 'Значение'. Но не в Опере. Там получается, что переменная не определена. Как сделать чтобы опера "увидела" эту передаваемую переменную? |
Не знаю, как у кого, но у меня лично с оперой очень натянутые отношения.
А по вопросу... Чисто теория... А сделать наоборот не получится, всмысле, получить данные окна-родителя? |
Наоборот не хотелось бы делать, т.к. для этого нужно создавать глобальные переменные. Приложение объемное, не хочется разводить бардак.
Да и для разных окон могут понадобиться разные данные. Т.е. это конечно решение, но не самое лучшее. |
Экспериментируйте. Попробуйте выставлять переменную после загрузки дочернего окна. В крайнем случае можно через строку запроса передать.
|
Цитата:
var storage={ param1: 'anyval1', param2: 'anyval1', ..., paramN: 'anyvalN' }; Всё будет храниться в единой "базе данных" без всякого бардака. Всё зависит от организации хранимых данных. Цитата:
var storage={ ... setParam: function(p,v){ if(this[p]&&v) this[p]=(typeof this[p]==='string')?v.length>0?v:'':parseInt(v); } }; или если требуется какая то новая переменная storage.newparam='newval'; Цитата:
|
Цитата:
|
http://bash.org.ru/quote/354952
вспомнилось, не в обиду ;) |
согласен с недочетом... чёт припарился... =)
|
Вобщем пришлось сделать "наоборот", т.е. из детеныша обращаться к родителю и брать данные из его свойств.
Количество детенышей ограничил количеством "один". Это даже логичнее в моей ситуации. Данное решение пришлось применить по еще одной причине: при рефреше окно-детеныш теряет полученные при открытии данные. Пробовал закрывать окно при рефреше, но там вылезают новые косяки. Можно было брать параметры из location'а, но это лишний код, преимуществ не дающий. Всем спасибо за комментарии. |
Часовой пояс GMT +3, время: 04:41. |