Попробуйте:
javascript:j=0;l=document.links;for(var i=0;i<l.length;i++){if(l[i].innerHTML.toLowerCase().indexOf("delete")!=-1){setTimeout("l["+i+"].onclick();",j*500+1);j++;}}
Обратите внимание на несколько вещей.Во-первых, я только что проверил, содержит ли HTML внутри тега ссылки слово delete.Если бы внутри тега ссылки был какой-либо дополнительный HTML или текст, ваш код не работал бы.Во-вторых, команда в setTimeout исправляет проблему области видимости, в которой переменная i не существовала бы при запуске setTimeout.Наконец, обратите внимание, что время ожидания указано как j * 500, причем j - это отдельная переменная, которая увеличивается каждый раз, когда обнаруживается ссылка «удалить».setTimeout не ждет полсекунды, запускает код и возвращается.Скорее он возвращает сразу, затем запускает код позже, если указано.При этом первая ссылка будет нажата за одну миллисекунду (0 * 500 + 1 = 1), вторая - через 501 миллисекунду, следующая - через 1001 и т. Д.
Я также хочу упомянуть, чтопоследняя версия Firefox, похоже, не поддерживает ввод букмарклетов прямо в адресной строке.Вы должны использовать веб-консоль (Ctrl + Shift + K) или блокнот JavaScript (Shift + F4) для запуска подобных фрагментов.Если вы сделаете это таким образом, удалите javascript: part в начале.