Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2008, 20:56
Новичок на форуме
Отправить личное сообщение для Bakuryu Посмотреть профиль Найти все сообщения от Bakuryu
 
Регистрация: 18.07.2008
Сообщений: 8

clearInterval и setInterval из разных локаций.
Привет! Есть две функции, в одной:
intervalID = setInterval (func, 10000 );

Во второй:
clearInterval (IntervalID);

Переменная IntervalID - объявлена глобальной.
1-ая ф-ция вызывается из одного окна, вторая из другого окна.
(Экстеншен к FF 1-ое окно - основное окно браузера, 2-ое - появляется при нажатии на кнопку)
Собственно проблема заключается в том, что не удаётся выполнить clearInterval (IntervalID), поскольку в этот момент IntervalID == undefined. Как я думаю (плз. поправьте меня если это не так) это от того, что ф-ции вызываемые из появляющегося окна ничего не знают о "глобальной" переменной IntervalID. Каким образом можно передать переменную (я так понял это вообще объект или ссылка на объект, потому nsIPrefService тут дело не обойдётся) IntervalID ф-циям, вызываемым из другого окошка?
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2008, 21:28
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

переменная голбальна в контексте окна.
Она НЕ глобальна относительно браузера, иначе я бы мог спокойно обращаться к скриптам на странице www.1.com из своей страницы, открытой в скрытом фрейме(окне).
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2008, 21:43
Новичок на форуме
Отправить личное сообщение для Bakuryu Посмотреть профиль Найти все сообщения от Bakuryu
 
Регистрация: 18.07.2008
Сообщений: 8

Потому я и написал ' "глобальной" ', в кавычках. Так всё же каким способом можно оборвать setInterval?
Ответить с цитированием
  #4 (permalink)  
Старый 27.07.2008, 21:50
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Если второе окно открывается из первого через window.open, то попробуйте искать из второго окна IntervalID в window.opener. Ведь все "глобальные" переменные на самом деле являются свойствами window. Или под "нажатие кнопки" вы имели в виду кнопку на панели firefox?

Последний раз редактировалось Андрей Параничев, 27.07.2008 в 21:53.
Ответить с цитированием
  #5 (permalink)  
Старый 27.07.2008, 22:13
Новичок на форуме
Отправить личное сообщение для Bakuryu Посмотреть профиль Найти все сообщения от Bakuryu
 
Регистрация: 18.07.2008
Сообщений: 8

Да, именно нажатие кнопки на панели FF. Второе окно открывается через openDialog, но это оказалось не важно, потому что с помощью window.opener получилось достать IntervalID, так что огромнейшее спасибо! =)
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2008, 22:32
Новичок на форуме
Отправить личное сообщение для Bakuryu Посмотреть профиль Найти все сообщения от Bakuryu
 
Регистрация: 18.07.2008
Сообщений: 8

Хмм... достать-то удалось(по
alert (window.opener.intervalID)
сужу), но
clearInterval (window.opener.intervalID);
не сбрасывает... =(
Ответить с цитированием
  #7 (permalink)  
Старый 27.07.2008, 22:45
Новичок на форуме
Отправить личное сообщение для Bakuryu Посмотреть профиль Найти все сообщения от Bakuryu
 
Регистрация: 18.07.2008
Сообщений: 8

Извиняюсь, setInterval дома-то и надо было убивать, вот так написал - получилось:
opener.clearInterval (window.opener.intervalID);
Ответить с цитированием
Ответ



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

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