根据点击次数 运行 不同功能的书签

Bookmarklet to run different functions depending on times clicked

是否可以根据点击次数设计小书签以运行不同场景?

我尝试在单击时通过 addEventListener 和 setTimeout(main, 5000) 来执行此操作,然后在 main() 最终 运行 时计算 eventListeners 的触发。它以时尚的方式工作,但这种方法有两个问题:

  1. 如果在网页上将小书签作为 link 调用,则会捕获并计算点击次数,但如果在书签栏上单击,则当然不会。我相信这是无法解决的;当最后一个主要功能 运行 不知何故时,必须评估点击次数...

  2. 说,我点了 3 次小书签; main() 运行s 3 次间隔 5000ms。我如何让它 运行 只有一次?只有最后一个,才能解决#1 中的问题?我做的方法很麻烦,几乎没有用,而且容易跑。

但主要问题是我觉得我的方法即使可行,也太笨拙了。我知道我可以使用 prompt() 并让用户输入场景的编号,或者呈现菜单并单击所需的场景,但是有没有一种方法可以仅根据点击次数/给定时间范围内的片段 运行s?

检查这是否是您需要的:

javascript: (() => {
  window.bmClicked = window.bmClicked ? window.bmClicked + 1 : 1;

  clearTimeout(window.bmTimeout);

  window.bmTimeout = setTimeout(() => {
    console.log('window.bmClicked: ', window.bmClicked);

    window.bmClicked === 1 && functionOne();
    window.bmClicked === 2 && functionTwo();
    window.bmClicked === 3 && functionThree();

    window.bmClicked = null;
  }, 500);

  function functionOne() {
    console.log('functionOne');
  }

  function functionTwo() {
    console.log('functionTwo');
  }

  function functionThree() {
    console.log('functionThree');
  }
})();