Почему-то не срабатывает break, помещенный в функцию внутри браузерного цикла..



  • Есть браузерный цикл, выполняющий нажатия на кнопку.
    При появлении определенного элемента на странице цикл должен прекратиться и быть вызван fail.

    Выглядит все примерно так:

    -Браузерный цикл
    ------Действие цикла
    ------Вызов функции N (в функции N содержится проверка существования элемента на странице, if элемент существует - break)
    ------Сон

    -Fail

    То есть скрипт должен перейти к Fail либо после завершения цикла, нажав все кнопки, либо после условия с break.
    В первом случае переходит к Fail, во втором - нет. И цикл продолжает работу, несмотря на существование элемента после которого цикл надо прервать.

    Что делать, товарищи?


  • administrators

    @sogbest Выложите примерный скрипт, так в разы быстрее понять в чём дело.




  • administrators

    -У тебя есть скрипт?
    -Лучше! у меня есть рисунок скрипта!
    alt text


    @sogbest Блок игнорирование ошибок не даёт выполнить fail.



  • @Fox так у меня fail не находится в этом блоке.
    В этом блоке находятся только действие 1-ой и 2-ой картинки сверху до if was_error
    Функция limit находится там и из-за этого не выполняется break на нижеидущие действия?



  • @Fox там просто куча дополнительных действий и чтобы вам не копаться в них я заскринил ключевые.



  • @sogbest

    ------Вызов функции N (в функции N содержится проверка существования элемента на странице, if элемент существует - break)

    или нет, бряк в функции == функция и брякается, цикл этажом выше причем?



  • @ruzne просто функция же в цикл встроена, я думал break должен догадаться, что из того цикла выйти нужно. Функция ведь всего лишь группирует действия для упрощения или не только?
    Получается, что нужно вынуть те действия из функции и просто их поставить на место вызова функции?



  • @sogbest я на это смотрю подругому, функция - именованый блок, цикл - тоже себе блок, + в басе все не то чем кажется

    цикл

    МЕТКА:{
    ...
    ...
    goto:МЕТКА
    }
    

    функция

    МЕТКА:{
    ...
    ...
    }
    goto:МЕТКА
    

    много разница?

    может ошибаюсь/заблуждаюсь



  • В басе цикл - тоже функция, поэтому сделан кастомный break, который выходит из всех функций.
    Чтобы выйти из цикла, находясь в функции, нужно выполнить код
    _break(2)



  • @DrPrime делал через "Инструменты" -> "Выполнить код" не помогает. Поставил в функцию вместо Break. его надо удалять?



  • @sogbest

    Цикл
    Функция
    Тут break(2)

    Вот так должно работать и выводить из цикла.
    Что бы проверить работу, нужно начать выполнение с цикла, не перенося точку выполнения



  • @DrPrime то есть _break(2) внутри функции, а break(2) снаружи после нее в теле цикла?



  • @sogbest только внутри функции
    Почему то иазметка сообщение выровнялась



  • @DrPrime так с подчеркиванием перед break или без?



  • @sogbest с подчервкиванием