Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   setInterval, и замена функций (https://javascript.ru/forum/misc/4901-setinterval-i-zamena-funkcijj.html)

SunnyDay 28.08.2009 14:10

setInterval, и замена функций
 
Всем доброго времени суток.
Столкнулся с небольшой проблеммой:
к примеру в каком-то куске кода устанавливается интервал на вызов ф-ии

setInterval(func_some, 200);

далее в этом коде я пытаюсь по каким-либо причинам заменить функцию func_some на другую:

func_some = function() { };

но интервал продолжает работать с исходной функцией... Подскажите пожалуйста, можно какнибудь заменить ф-ю из интервала, или нет?

P.S. SetTimeout не то, ибо пишется скрипт-автовставка в чужие страницы.

Kolyaj 28.08.2009 14:24

Останавливать и запускать новый.

Цитата:

Сообщение от SunnyDay
P.S. SetTimeout не то, ибо пишется скрипт-автовставка в чужие страницы.

И как это связано?

tenshi 28.08.2009 14:44

передавать не саму функцию, а её делегата..

SunnyDay 28.08.2009 14:49

Kolyaj, эмм, если не секрет, как остановить его?
>И как это связано?
Некоторые своими скриптами блокируют рекламу.. SetTimeout итак работает

SunnyDay 28.08.2009 14:51

tenshi, setInterval - предположительно в чужом коде, а мне нужно его остановить.

JSprog 28.08.2009 14:52

Цитата:

Сообщение от SunnyDay
эмм, если не секрет, как остановить его?

clearInterval
Синтаксис
x=setInterval(func_some, 200);
clearInterval(x)
________________________________
Меня даже уже жалеют и + ставят xD

tenshi 28.08.2009 15:00

я и не предлагаю его трогать...

tenshi 28.08.2009 15:04

var wrapper= new FunctionWrapper( f1 )
setInterval( wrapper, 1000 )
wrapper.constructor( f2 )

JSprog 28.08.2009 15:51

Цитата:

Сообщение от tenshi
var wrapper= new FunctionWrapper( f1 )
setInterval( wrapper, 1000 )
wrapper.constructor( f2 )

И что изменеия работают в setInterval?

SunnyDay 28.08.2009 15:56

ребят, вы меня помоему не слышите)

setInterval в чужом стороннем коде и выглядит так

setInterval(func_some, 200);

а не так

x=setInterval(func_some, 200);

можно что-либо предпринять?=)

JSprog 28.08.2009 15:57

Ну как я понял вы хотите добавить новую строку в этот чужой код так нельзя ли сделать индефикатор?

Kolyaj 28.08.2009 15:58

Цитата:

Сообщение от SunnyDay
можно что-либо предпринять?=)

Нет.

SunnyDay 28.08.2009 16:29

Kolyaj,тоесть совсем ничем блокнуть нельзя? Даже если какие-либо внутренние переменные порыть?

JSprog 28.08.2009 16:31

Только если есть идентификатор!

SunnyDay 28.08.2009 16:32

Цитата:

Сообщение от JSprog (Сообщение 28619)
Ну как я понял вы хотите добавить новую строку в этот чужой код так нельзя ли сделать индефикатор?

нет, серверными скриптами слишком затратно, ибо производительность должна на высоте там быть.. А сам код изначально никто не знает - ибо там страниц тысячи, и в некоторых впоследствии может появиться защита от нашей рекламы..

tenshi 28.08.2009 16:38

Цитата:

Сообщение от SunnyDay (Сообщение 28644)
Kolyaj,тоесть совсем ничем блокнуть нельзя? Даже если какие-либо внутренние переменные порыть?

нет, ничем нельзя. успокойся.

Riim 29.08.2009 00:51

Цитата:

Сообщение от SunnyDay
можно что-либо предпринять?=)

Заменить func_some до setInterval.


Часовой пояс GMT +3, время: 17:31.