#javascript #google-chrome #bookmarklet
#javascript #google-chrome #букмарклет
Вопрос:
Я написал букмарклет для нажатия контролируемого количества раз на HTML-элемент (для игр с кликерами и тому подобное). Однако, когда я запускаю его, он запрашивает «Сколько раз вы хотите щелкнуть?» дважды.
Насколько мне известно, второе приглашение ничего не делает. Есть ли способ избавиться от этого?
Код:
javascript:
var clicked = false
document.onclick= function(event) {
if (!clicked) {
var target= 'target' in event? event.target : event.srcElement;
var clickamount= parseInt(prompt("Enter time to click " target.id))-1;
for (let i = 0; i < clickamount; i ) {
target.click();
}
clicked = true
}
};
Комментарии:
1.Вы прослушиваете «щелчки» по документу, поэтому каждый щелчок по дочерним элементам также будет отображаться в документе (вы устанавливаете только
clicked = true
после того, как ваш цикл запускает больше щелчков). Кроме того, всегда передавайте основание в parseInt .2. Существует нечто, называемое делегированием событий: javascript.info/event-delegation
3. Как вы можете быть уверены, что сгенерированное
click
будет обработано после установки значенияclicked
false?