clearInterval и setInterval из разных локаций.
Привет! Есть две функции, в одной:
intervalID = setInterval (func, 10000 ); Во второй: clearInterval (IntervalID); Переменная IntervalID - объявлена глобальной. 1-ая ф-ция вызывается из одного окна, вторая из другого окна. (Экстеншен к FF 1-ое окно - основное окно браузера, 2-ое - появляется при нажатии на кнопку) Собственно проблема заключается в том, что не удаётся выполнить clearInterval (IntervalID), поскольку в этот момент IntervalID == undefined. Как я думаю (плз. поправьте меня если это не так) это от того, что ф-ции вызываемые из появляющегося окна ничего не знают о "глобальной" переменной IntervalID. Каким образом можно передать переменную (я так понял это вообще объект или ссылка на объект, потому nsIPrefService тут дело не обойдётся) IntervalID ф-циям, вызываемым из другого окошка? |
переменная голбальна в контексте окна.
Она НЕ глобальна относительно браузера, иначе я бы мог спокойно обращаться к скриптам на странице www.1.com из своей страницы, открытой в скрытом фрейме(окне). |
Потому я и написал ' "глобальной" ', в кавычках. Так всё же каким способом можно оборвать setInterval?
|
Если второе окно открывается из первого через window.open, то попробуйте искать из второго окна IntervalID в window.opener. Ведь все "глобальные" переменные на самом деле являются свойствами window. Или под "нажатие кнопки" вы имели в виду кнопку на панели firefox?
|
Да, именно нажатие кнопки на панели FF. Второе окно открывается через openDialog, но это оказалось не важно, потому что с помощью window.opener получилось достать IntervalID, так что огромнейшее спасибо! =)
|
Хмм... достать-то удалось(по
alert (window.opener.intervalID)сужу), но clearInterval (window.opener.intervalID);не сбрасывает... =( |
Извиняюсь, setInterval дома-то и надо было убивать, вот так написал - получилось:
opener.clearInterval (window.opener.intervalID); |
Часовой пояс GMT +3, время: 17:00. |