Петли в GreaseMonkey - PullRequest
       5

Петли в GreaseMonkey

2 голосов
/ 05 ноября 2010

Я разрабатываю свой первый скрипт greasemonkey (пытаюсь редактировать и добавлять содержимое страницы на конкретный веб-сайт) и по какой-то причине он отказывается работать за пределами одного цикла while.1004 * Все, что после этого пока заканчивается цикл, отказывается работать.Кажется, даже простой alert не выполняется.У меня есть еще один while цикл с аналогичной структурой, и если я его сначала ставлю, он выполняется, а этот нет.Есть идеи ?Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 05 ноября 2010

Наиболее очевидная проблема - переполнение массива, что приведет к ошибке сценария.

Это: while(i <= anchorTagNumber)
Должно быть: while(i < anchorTagNumber).
Например, если массив имеет длину 5, его последний элемент будет иметь индекс 4.

Также это:

var anchorTag = window.document.getElementsByTagName('a');
var anchorTagNumber = window.document.getElementsByTagName('a').length;


Можно упростить до:

var anchorTag       = window.document.getElementsByTagName('a');
var anchorTagNumber = anchorTag.length;


Это немного ускорит код, но также облегчит дальнейшее обслуживание или повторное использование кода.

1 голос
/ 05 ноября 2010

Вместо использования времени вы можете попробовать setInterval для вызова вашей функции каждые 100 миллисекунд.

interval = setInterval(function(){
    iDidIt = doSomethin()
    if(iDidIt){
       clear interval;
    }
},100)
...