Показать сообщение отдельно
  #5 (permalink)  
Старый 01.06.2009, 00:26
Аспирант
Отправить личное сообщение для Pattern Посмотреть профиль Найти все сообщения от Pattern
 
Регистрация: 13.05.2009
Сообщений: 37

Сообщение от ec_stasis Посмотреть сообщение
Наоборот не хотелось бы делать, т.к. для этого нужно создавать глобальные переменные. Приложение объемное, не хочется разводить бардак.
Ну тут вовсе не обязательно хранить глобальную переменную явным образом. Это может быть объект-хранитель данных.
var storage={
  param1: 'anyval1',
  param2: 'anyval1',
  ...,
  paramN: 'anyvalN'
};

Всё будет храниться в единой "базе данных" без всякого бардака. Всё зависит от организации хранимых данных.
Сообщение от ec_stasis Посмотреть сообщение
Да и для разных окон могут понадобиться разные данные.
Это никакого значения не имеет. Можешь напрямую обращаться к свойствам объекта, можешь написать функцию что то наподобии
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';

Сообщение от ec_stasis Посмотреть сообщение
Т.е. это конечно решение, но не самое лучшее.
Боюсь, для реализации кроссбраузерности не избежать решений тех, которые являются "не самыми лучшими". Единого стандарта пока нет... И боюсь что вряд ли он когда-либо появится.
Ответить с цитированием