如何点击带有 javascript 书签的网站元素?
How to click on an element of a website with javascript bookmarklet?
我想做的是点击这个图标(每个网站大约有 16 个,一个接一个,点击第一个,转到下一个可用的,等等....
为了理解...
有时它有另一个眼睛图标:(它稍微改变了代码)
我知道我们可以从控制台进行操作,但为了方便起见,我更愿意从书签进行操作(将代码添加到书签,然后在需要时单击它)
所以,我所知道的(感谢@Sphinx)是我们必须写在 bookmarkletjavascript:$("span.icon.icon_eye").click()
但 主要问题 是当我点击它时,它会点击第一个图标眼睛,我需要先点击第一个眼睛图标,然后是第二个,然后是第三个,依此类推...
根据您的意见,以下代码应该是您所需要的。
bind click
所有 span.icon_eye
的事件。
单击 each <span class="icon icon_eys">
second by second (setTimeout)。
function clickSomething() {
$('span.icon.icon_eye').on('click', function(){console.log('You clicked', $(this).html())});
$('span.icon.icon_eye').each(function(index){setTimeout(()=>{$(this).click()}, index*1000);});
}
setTimeout(clickSomething, 1000)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span class="icon icon_eye">A</span>
<span class="icon icon_eye">B</span>
<span class="icon icon_eye">C</span>
<span class="icon icon_eye">D</span>
<span class="icon icon_eye">E</span>
<span class="icon icon_eye">F</span>
</div>
尝试:
var currentBookmark = $($('.icon_eye').get(0));
var bookmarkClicker = function() {
console.log('you clicked bookmark at ' + currentBookmark.text());
setTimeout(function() {
currentBookmark = currentBookmark.next('.icon_eye');
if (currentBookmark) {
currentBookmark.on('click', bookmarkClicker);
currentBookmark.click();
}
}, 500);
};
currentBookmark.on('click', bookmarkClicker);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span class="icon icon_eye">A</span>
<span class="icon icon_eye">B</span>
<span class="icon icon_eye">C</span>
<span class="icon icon_eye">D</span>
<span class="icon icon_eye">E</span>
<span class="icon icon_eye">F</span>
</div>
我想做的是点击这个图标(每个网站大约有 16 个,一个接一个,点击第一个,转到下一个可用的,等等....
为了理解...
有时它有另一个眼睛图标:(它稍微改变了代码)
我知道我们可以从控制台进行操作,但为了方便起见,我更愿意从书签进行操作(将代码添加到书签,然后在需要时单击它)
所以,我所知道的(感谢@Sphinx)是我们必须写在 bookmarkletjavascript:$("span.icon.icon_eye").click()
但 主要问题 是当我点击它时,它会点击第一个图标眼睛,我需要先点击第一个眼睛图标,然后是第二个,然后是第三个,依此类推...
根据您的意见,以下代码应该是您所需要的。
bind
click
所有span.icon_eye
的事件。单击 each
<span class="icon icon_eys">
second by second (setTimeout)。
function clickSomething() {
$('span.icon.icon_eye').on('click', function(){console.log('You clicked', $(this).html())});
$('span.icon.icon_eye').each(function(index){setTimeout(()=>{$(this).click()}, index*1000);});
}
setTimeout(clickSomething, 1000)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span class="icon icon_eye">A</span>
<span class="icon icon_eye">B</span>
<span class="icon icon_eye">C</span>
<span class="icon icon_eye">D</span>
<span class="icon icon_eye">E</span>
<span class="icon icon_eye">F</span>
</div>
尝试:
var currentBookmark = $($('.icon_eye').get(0));
var bookmarkClicker = function() {
console.log('you clicked bookmark at ' + currentBookmark.text());
setTimeout(function() {
currentBookmark = currentBookmark.next('.icon_eye');
if (currentBookmark) {
currentBookmark.on('click', bookmarkClicker);
currentBookmark.click();
}
}, 500);
};
currentBookmark.on('click', bookmarkClicker);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span class="icon icon_eye">A</span>
<span class="icon icon_eye">B</span>
<span class="icon icon_eye">C</span>
<span class="icon icon_eye">D</span>
<span class="icon icon_eye">E</span>
<span class="icon icon_eye">F</span>
</div>