如何使用javascript bookmarklet点击网站的元素?

时间:2018-04-12 23:59:16

标签: javascript bookmarklet

我想要做的就是点击这个图标(每个网站有16个,一个一个,点击第一个,转到下一个可用的等等....

理解...... Image 1

有时它有另一个眼睛图标:(它稍微改变了代码) Image 2

我知道我们可以从控制台进行操作,但为了舒适,我更喜欢从书签中添加(将代码添加到书签,然后在需要时单击它) 所以,我所知道的(感谢@Sphinx)是我们必须写一个 bookmarklet javascript:$("span.icon.icon_eye").click()主要问题是当我点击它时,它点击第一个图标眼睛,我需要先点击第一个眼睛图标,然后是第二个,然后是第三个,等等...

2 个答案:

答案 0 :(得分:1)

根据您的评论,以下代码应该是您所需要的。

    所有click
  1. bind span.icon_eye事件。

  2. 点击each <span class="icon icon_eys">秒(setTimeout)。

  3. &#13;
    &#13;
    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)
    &#13;
    <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>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

尝试:

&#13;
&#13;
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);
&#13;
<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>
&#13;
&#13;
&#13;