Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2008, 16:19
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

top.eval()
Ситуация простая, в функции эвалим вновь создаваемую переменную, надо чтоб эта переменная была глобальной.
Придумал вот такой вариант:
function doEval() {
    top.eval('var punkt="punt"');
}
doEval();
alert(punkt);

Т.е. просто перед eval поставить top.

Зачем я написал этот топик? Интересно просто, так вообще катит или есть еще какие-нибудь способы? =)
Ответить с цитированием
  #2 (permalink)  
Старый 03.09.2008, 16:20
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Не понял?
А просто без var она глобальная разве не станет???
Ответить с цитированием
  #3 (permalink)  
Старый 03.09.2008, 16:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Как и ожидалось в ИЕ не работает. Надо так
function doEval(str) {
  window.execScript ? window.execScript(str) : window.eval.call(window, str);
}
Ответить с цитированием
  #4 (permalink)  
Старый 03.09.2008, 16:26
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от ZoNT Посмотреть сообщение
Не понял?
А просто без var она глобальная разве не станет???
*очень много кода уже написано с var'ами. %)
А так, конечно, все было бы на отлично.
Ответить с цитированием
  #5 (permalink)  
Старый 03.09.2008, 16:28
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Скажи, что требуется, я так и не понял, почему нельзя обойтись без вара?
Ответить с цитированием
  #6 (permalink)  
Старый 03.09.2008, 16:39
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от ZoNT Посмотреть сообщение
Скажи, что требуется, я так и не понял, почему нельзя обойтись без вара?
Есть куча уже написанных страничек, в которых используются скрипты c var (аяксом это все дело грузится). Ну и плюс не все страницы обновляются мной лично, чтоб следить "никто ли var не аписал".
Ответить с цитированием
  #7 (permalink)  
Старый 03.09.2008, 16:42
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Kolyaj, спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 03.09.2008, 16:56
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Kolyaj, не работает в сафари под виндой =\
Ответить с цитированием
  #9 (permalink)  
Старый 03.09.2008, 17:08
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

и что мешает убрать реплейсом вар и выполнить эвалом?
Будет и кроссбраузерно и не надо всякие top.eval придумывать.

Только я не вижу смысла в переделке переменной в глобальную...
Ответить с цитированием
  #10 (permalink)  
Старый 03.09.2008, 17:16
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от ZoNT Посмотреть сообщение
и что мешает убрать реплейсом вар и выполнить эвалом?
Будет и кроссбраузерно и не надо всякие top.eval придумывать.
Видимо так и придется делать, просто var может попасться не только в глобальном контексте, но и в какой-нибудь функции.

Цитата:
Только я не вижу смысла в переделке переменной в глобальную...
Смысл прост, при первой загрузке аяксом создается переменная, которую используем потом. А она получается локальной в функции которая выолняет eval.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск